Message ID | 20160329140244.GV17997@ZenIV.linux.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 29-03-16 16:02, Al Viro wrote: > On Tue, Mar 29, 2016 at 01:11:55PM +0200, Arend Van Spriel wrote: >> Hi Al, >> >> Moved to 4.6-rc1 and found NFS mounts were failing moving to the new >> kernel. The NFS mounts are done using autofs. Below is the bisect log >> and attached the kernel .config file. Let me know if you need any other >> information. > > AFAICS, it's the same one that got reported yesterday by Junichi Nomura. > Folks, could you check if the delta below fixes it? Works for me so you may add Tested-by: Arend van Spriel <arend@broadcom.com> Regards, Arend > diff --git a/fs/namei.c b/fs/namei.c > index 3498d53..0d80c72 100644 > --- a/fs/namei.c > +++ b/fs/namei.c > @@ -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); > } > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 03/30/16 04:17, Arend van Spriel wrote: > On 29-03-16 16:02, Al Viro wrote: >> On Tue, Mar 29, 2016 at 01:11:55PM +0200, Arend Van Spriel wrote: >>> Moved to 4.6-rc1 and found NFS mounts were failing moving to the new >>> kernel. The NFS mounts are done using autofs. Below is the bisect log >>> and attached the kernel .config file. Let me know if you need any other >>> information. >> >> AFAICS, it's the same one that got reported yesterday by Junichi Nomura. >> Folks, could you check if the delta below fixes it? > > Works for me so you may add > > Tested-by: Arend van Spriel <arend@broadcom.com> Yes, that works for me, too. Thank you. Tested-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
diff --git a/fs/namei.c b/fs/namei.c index 3498d53..0d80c72 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -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); }