svn commit: r196341 - in stable/8/sys: . amd64/include/xen
cddl/contrib/opensolaris contrib/dev/acpica contrib/pf
dev/mfi dev/xen/xenpci fs/nfsclient
Rick Macklem
rmacklem at FreeBSD.org
Mon Aug 17 18:11:51 UTC 2009
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);
}
}
More information about the svn-src-stable
mailing list