OSDN Git Service

expand the only remaining call of path_lookup_conditional()
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 12 Jan 2020 18:54:30 +0000 (13:54 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 14 Mar 2020 01:08:17 +0000 (21:08 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namei.c

index 0fcd738..e339351 100644 (file)
@@ -858,13 +858,6 @@ static int set_root(struct nameidata *nd)
        return 0;
 }
 
-static void path_put_conditional(struct path *path, struct nameidata *nd)
-{
-       dput(path->dentry);
-       if (path->mnt != nd->path.mnt)
-               mntput(path->mnt);
-}
-
 static inline void path_to_nameidata(const struct path *path,
                                        struct nameidata *nd)
 {
@@ -1312,8 +1305,11 @@ static int follow_managed(struct path *path, struct nameidata *nd)
                ret = 1;
        if (ret > 0 && unlikely(d_flags_negative(flags)))
                ret = -ENOENT;
-       if (unlikely(ret < 0))
-               path_put_conditional(path, nd);
+       if (unlikely(ret < 0)) {
+               dput(path->dentry);
+               if (path->mnt != nd->path.mnt)
+                       mntput(path->mnt);
+       }
        return ret;
 }