aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfred Perlstein <alfred@FreeBSD.org>2003-11-11 00:32:46 +0000
committerAlfred Perlstein <alfred@FreeBSD.org>2003-11-11 00:32:46 +0000
commitb46b1a899f4eb9351eca8e81cd275f916bcc6613 (patch)
treeaed0d793e26b6bc8ed724e971794cadf1451ea5a
parent383df78dc811490c9fe9ba45f7be9a0229fcc911 (diff)
downloadsrc-b46b1a899f4eb9351eca8e81cd275f916bcc6613.tar.gz
src-b46b1a899f4eb9351eca8e81cd275f916bcc6613.zip
Stop using shared locks for nfs vop locks.
The reason this was done was to avoid a race to the root when an NFS server went down. However a semi-recent change to the way that the kernel's lookup() routine traverses mount points prevents this. Rev 1.39 of vfs_lookup.c changed the ordering of locks such that we aquire a shared lock on the mount point being accessed and then drop the directory vnode lock before requesting the target lock. With that in place we no longer need shared locks for NFS to prevent race to the root lockups.
Notes
Notes: svn path=/head/; revision=122450
-rw-r--r--sys/nfsclient/nfs_vnops.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c
index 981605edbf3f..692ab8943b08 100644
--- a/sys/nfsclient/nfs_vnops.c
+++ b/sys/nfsclient/nfs_vnops.c
@@ -149,7 +149,6 @@ static struct vnodeopv_entry_desc nfs_vnodeop_entries[] = {
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
{ &vop_lease_desc, (vop_t *) vop_null },
{ &vop_link_desc, (vop_t *) nfs_link },
- { &vop_lock_desc, (vop_t *) vop_sharedlock },
{ &vop_lookup_desc, (vop_t *) nfs_lookup },
{ &vop_mkdir_desc, (vop_t *) nfs_mkdir },
{ &vop_mknod_desc, (vop_t *) nfs_mknod },
@@ -183,7 +182,6 @@ static struct vnodeopv_entry_desc nfs_specop_entries[] = {
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
- { &vop_lock_desc, (vop_t *) vop_sharedlock },
{ &vop_print_desc, (vop_t *) nfs_print },
{ &vop_read_desc, (vop_t *) nfsspec_read },
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },
@@ -203,7 +201,6 @@ static struct vnodeopv_entry_desc nfs_fifoop_entries[] = {
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
- { &vop_lock_desc, (vop_t *) vop_sharedlock },
{ &vop_print_desc, (vop_t *) nfs_print },
{ &vop_read_desc, (vop_t *) nfsfifo_read },
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },