From: Trond Myklebust Date: Mon, 14 Nov 2022 22:30:39 +0000 (-0500) Subject: NFS: Fix an Oops in nfs_d_automount() X-Git-Tag: v6.1.8~1536 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6f3d56783fbed861e483736a7001bdafd0dddd53;p=platform%2Fkernel%2Flinux-starfive.git NFS: Fix an Oops in nfs_d_automount() [ Upstream commit 35e3b6ae84935d0d7ff76cbdaa83411b0ad5e471 ] When mounting from a NFSv4 referral, path->dentry can end up being a negative dentry, so derive the struct nfs_server from the dentry itself instead. Fixes: 2b0143b5c986 ("VFS: normal filesystems (and lustre): d_inode() annotations") Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin --- diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c index 2f336ac..88a23af 100644 --- a/fs/nfs/namespace.c +++ b/fs/nfs/namespace.c @@ -147,7 +147,7 @@ struct vfsmount *nfs_d_automount(struct path *path) struct nfs_fs_context *ctx; struct fs_context *fc; struct vfsmount *mnt = ERR_PTR(-ENOMEM); - struct nfs_server *server = NFS_SERVER(d_inode(path->dentry)); + struct nfs_server *server = NFS_SB(path->dentry->d_sb); struct nfs_client *client = server->nfs_client; int timeout = READ_ONCE(nfs_mountpoint_expiry_timeout); int ret;