aboutsummaryrefslogtreecommitdiff
path: root/sys/nfsclient/nfs_subs.c
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2003-11-05 04:30:08 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2003-11-05 04:30:08 +0000
commitca430f2e92d073fc5c05df06b6b72cfb2842ee4b (patch)
treed6d549e791dd7c4a627af5beb25ec44a2fcdd02d /sys/nfsclient/nfs_subs.c
parent5c8bb90bf7268afbc9e28ccac23cae1fdaf73a4c (diff)
downloadsrc-ca430f2e92d073fc5c05df06b6b72cfb2842ee4b.tar.gz
src-ca430f2e92d073fc5c05df06b6b72cfb2842ee4b.zip
Remove mntvnode_mtx and replace it with per-mountpoint mutex.
Introduce two new macros MNT_ILOCK(mp)/MNT_IUNLOCK(mp) to operate on this mutex transparently. Eventually new mutex will be protecting more fields in struct mount, not only vnode list. Discussed with: jeff
Notes
Notes: svn path=/head/; revision=122091
Diffstat (limited to 'sys/nfsclient/nfs_subs.c')
-rw-r--r--sys/nfsclient/nfs_subs.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/nfsclient/nfs_subs.c b/sys/nfsclient/nfs_subs.c
index e43bd927ac58..7b8866e38418 100644
--- a/sys/nfsclient/nfs_subs.c
+++ b/sys/nfsclient/nfs_subs.c
@@ -788,7 +788,7 @@ nfs_clearcommit(struct mount *mp)
GIANT_REQUIRED;
s = splbio();
- mtx_lock(&mntvnode_mtx);
+ MNT_ILOCK(mp);
loop:
for (vp = TAILQ_FIRST(&mp->mnt_nvnodelist); vp; vp = nvp) {
if (vp->v_mount != mp) /* Paranoia */
@@ -799,7 +799,7 @@ loop:
VI_UNLOCK(vp);
continue;
}
- mtx_unlock(&mntvnode_mtx);
+ MNT_IUNLOCK(mp);
for (bp = TAILQ_FIRST(&vp->v_dirtyblkhd); bp; bp = nbp) {
nbp = TAILQ_NEXT(bp, b_vnbufs);
if (BUF_REFCNT(bp) == 0 &&
@@ -808,9 +808,9 @@ loop:
bp->b_flags &= ~(B_NEEDCOMMIT | B_CLUSTEROK);
}
VI_UNLOCK(vp);
- mtx_lock(&mntvnode_mtx);
+ MNT_ILOCK(mp);
}
- mtx_unlock(&mntvnode_mtx);
+ MNT_IUNLOCK(mp);
splx(s);
}