]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blobdiff - fs/namei.c
Merge getxattr prototype change into work.lookups
[mirror_ubuntu-focal-kernel.git] / fs / namei.c
index c0d551fc43a0fba8049755e446aec601151cf387..bdcea8a018b889cc80594517fa4cd9385e7c2251 100644 (file)
@@ -1740,15 +1740,17 @@ static int walk_component(struct nameidata *nd, int flags)
                                          nd->flags);
                if (IS_ERR(path.dentry))
                        return PTR_ERR(path.dentry);
-               if (unlikely(d_is_negative(path.dentry))) {
-                       dput(path.dentry);
-                       return -ENOENT;
-               }
+
                path.mnt = nd->path.mnt;
                err = follow_managed(&path, nd);
                if (unlikely(err < 0))
                        return err;
 
+               if (unlikely(d_is_negative(path.dentry))) {
+                       path_to_nameidata(&path, nd);
+                       return -ENOENT;
+               }
+
                seq = 0;        /* we are already out of RCU mode */
                inode = d_backing_inode(path.dentry);
        }