filename_lookup used to return success for non-existing file when called with LOOKUP_PARENT flag. This behaviour was changed with commit 8bcb77fabd7c ("namei: split off filename_lookupat() with LOOKUP_PARENT") The above patch split parent lookup functionality to a different function filename_parentat and changed all calls to filename_lookup(LOOKUP_PARENT) to the new function filename_parentat. But functions like kern_path which passed the flags directly to filename_lookup regressed due to this. This patch aims to fix the regressed behaviour by calling filename_parentat from filename_lookup if the flags contain LOOKUP_PARENT. Signed-off-by: Vineeth Remanan Pillai <vineethp@xxxxxxxxxx> --- fs/namei.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/fs/namei.c b/fs/namei.c index adb0414..e16ab09 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -2292,6 +2292,21 @@ static int filename_lookup(int dfd, struct filename *name, unsigned flags, { int retval; struct nameidata nd; + + if (flags & LOOKUP_PARENT) { + struct qstr last; + struct filename *filename; + int type; + + filename = filename_parentat(dfd, name, flags ^ LOOKUP_PARENT, + path, &last, &type); + if (IS_ERR(filename)) + return PTR_ERR(filename); + + putname(filename); + return 0; + } + if (IS_ERR(name)) return PTR_ERR(name); if (unlikely(root)) { -- 2.1.2.AMZN -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html