From: Neil Brown 25-akpm/fs/nfsd/export.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN fs/nfsd/export.c~exp_parent-locking-fix fs/nfsd/export.c --- 25/fs/nfsd/export.c~exp_parent-locking-fix Thu Mar 27 18:11:18 2003 +++ 25-akpm/fs/nfsd/export.c Thu Mar 27 18:11:18 2003 @@ -499,13 +499,13 @@ exp_parent(svc_client *clp, struct vfsmo dget(dentry); exp = exp_get_by_name(clp, mnt, dentry, reqp); - while (exp == NULL && dentry != dentry->d_parent) { + while (exp == NULL && !IS_ROOT(dentry)) { struct dentry *parent; read_lock(&dparent_lock); parent = dget(dentry->d_parent); + read_unlock(&dparent_lock); dput(dentry); dentry = parent; - read_unlock(&dparent_lock); exp = exp_get_by_name(clp, mnt, dentry, reqp); } dput(dentry); _