Browse Source

nfs: BUG_ON in nfs_follow_mountpoint

Unfortunately, BUG_ON(IS_ROOT(dentry)) can happen inside
nfs_follow_mountpoint with NFS running Fedora 8 using a
specific setup.
https://bugzilla.redhat.com/show_bug.cgi?id=458622

So, the situation should be handled on NFS client gracefully.

Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Trond Myklebust <Trond.Myklebust@netapp.com>
CC: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Denis V. Lunev 16 years ago
parent
commit
44d5759d3f
1 changed files with 4 additions and 1 deletions
  1. 4 1
      fs/nfs/namespace.c

+ 4 - 1
fs/nfs/namespace.c

@@ -105,7 +105,10 @@ static void * nfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd)
 
 
 	dprintk("--> nfs_follow_mountpoint()\n");
 	dprintk("--> nfs_follow_mountpoint()\n");
 
 
-	BUG_ON(IS_ROOT(dentry));
+	err = -ESTALE;
+	if (IS_ROOT(dentry))
+		goto out_err;
+
 	dprintk("%s: enter\n", __func__);
 	dprintk("%s: enter\n", __func__);
 	dput(nd->path.dentry);
 	dput(nd->path.dentry);
 	nd->path.dentry = dget(dentry);
 	nd->path.dentry = dget(dentry);