Hi,
I fixed a nfsd bug.
KNFSDs will deadlock in nfsd_symlink() as they try to grab i_sem doubly,
though the i_sem is already grabbed by fh_lock().
Thank you,
Hirokazu Takahashi.
--- linux/fs/nfsd/vfs.c.ORG Sat Apr 20 09:09:30 2002
+++ linux/fs/nfsd/vfs.c Mon Apr 22 06:08:51 2002
@@ -1127,9 +1135,7 @@
iap->ia_valid |= ATTR_CTIME;
iap->ia_mode = (iap->ia_mode&S_IALLUGO)
| S_IFLNK;
- down(&dentry->d_inode->i_sem);
err = notify_change(dnew, iap);
- up(&dentry->d_inode->i_sem);
if (!err && EX_ISSYNC(fhp->fh_export))
write_inode_now(dentry->d_inode, 1);
}