diff options
author | Alexander Kabaev <kan@FreeBSD.org> | 2003-11-05 04:30:08 +0000 |
---|---|---|
committer | Alexander Kabaev <kan@FreeBSD.org> | 2003-11-05 04:30:08 +0000 |
commit | ca430f2e92d073fc5c05df06b6b72cfb2842ee4b (patch) | |
tree | d6d549e791dd7c4a627af5beb25ec44a2fcdd02d /sys/nfsclient/nfs_subs.c | |
parent | 5c8bb90bf7268afbc9e28ccac23cae1fdaf73a4c (diff) | |
download | src-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.c | 8 |
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); } |