From: NeilBrown Oops, this lookup_one_len needs the i_sem. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton --- fs/nfsd/nfs4recover.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN fs/nfsd/nfs4recover.c~nfsd4-lookup_one_len-takes-i_sem fs/nfsd/nfs4recover.c --- 25/fs/nfsd/nfs4recover.c~nfsd4-lookup_one_len-takes-i_sem Wed Jul 6 13:08:12 2005 +++ 25-akpm/fs/nfsd/nfs4recover.c Wed Jul 6 13:08:12 2005 @@ -289,7 +289,9 @@ nfsd4_unlink_clid_dir(char *name, int na dprintk("NFSD: nfsd4_unlink_clid_dir. name %.*s\n", namlen, name); + down(&rec_dir.dentry->d_inode->i_sem); dentry = lookup_one_len(name, rec_dir.dentry, namlen); + up(&rec_dir.dentry->d_inode->i_sem); if (IS_ERR(dentry)) { status = PTR_ERR(dentry); return status; _