Author: rmacklem
Date: Mon Aug 17 18:11:50 2009
New Revision: 196341
URL: http://svn.freebsd.org/changeset/base/196341

Log:
  MFC   r196332:
  Apply the same patch as r196205 for nfs_upgrade_lock() and
  nfs_downgrade_lock() to the experimental nfs client.
  
  Approved by:  re (kensmith), kib (mentor)

Modified:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/mfi/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)
  stable/8/sys/fs/nfsclient/nfs_clsubs.c

Modified: stable/8/sys/fs/nfsclient/nfs_clsubs.c
==============================================================================
--- stable/8/sys/fs/nfsclient/nfs_clsubs.c      Mon Aug 17 18:02:46 2009        
(r196340)
+++ stable/8/sys/fs/nfsclient/nfs_clsubs.c      Mon Aug 17 18:11:50 2009        
(r196341)
@@ -129,28 +129,25 @@ int
 ncl_upgrade_vnlock(struct vnode *vp)
 {
        int old_lock;
-       
-       if ((old_lock = VOP_ISLOCKED(vp)) != LK_EXCLUSIVE) {
-               if (old_lock == LK_SHARED) {
-                       /* Upgrade to exclusive lock, this might block */
-                       vn_lock(vp, LK_UPGRADE | LK_RETRY);
-               } else {
-                       vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
-               }
+
+       ASSERT_VOP_LOCKED(vp, "ncl_upgrade_vnlock");
+       old_lock = VOP_ISLOCKED(vp);
+       if (old_lock != LK_EXCLUSIVE) {
+               KASSERT(old_lock == LK_SHARED,
+                   ("ncl_upgrade_vnlock: wrong old_lock %d", old_lock));
+               /* Upgrade to exclusive lock, this might block */
+               vn_lock(vp, LK_UPGRADE | LK_RETRY);
        }
-       return old_lock;
+       return (old_lock);
 }
 
 void
 ncl_downgrade_vnlock(struct vnode *vp, int old_lock)
 {
        if (old_lock != LK_EXCLUSIVE) {
-               if (old_lock == LK_SHARED) {
-                       /* Downgrade from exclusive lock, this might block */
-                       vn_lock(vp, LK_DOWNGRADE);
-               } else {
-                       VOP_UNLOCK(vp, 0);
-               }
+               KASSERT(old_lock == LK_SHARED, ("wrong old_lock %d", old_lock));
+               /* Downgrade from exclusive lock. */
+               vn_lock(vp, LK_DOWNGRADE | LK_RETRY);
        }
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to