diff options
author | jasone <jasone@FreeBSD.org> | 2001-01-24 12:35:55 +0000 |
---|---|---|
committer | jasone <jasone@FreeBSD.org> | 2001-01-24 12:35:55 +0000 |
commit | 8d2ec1ebc4a9454e2936c6fcbe29a5f1fd83504f (patch) | |
tree | 23bd3f0014237e1b861fed6a7c3b587948d149d5 /sys/gnu/ext2fs | |
parent | c5cc2f8e2621f1d090434a5474a18fae384e1db6 (diff) | |
download | FreeBSD-src-8d2ec1ebc4a9454e2936c6fcbe29a5f1fd83504f.zip FreeBSD-src-8d2ec1ebc4a9454e2936c6fcbe29a5f1fd83504f.tar.gz |
Convert all simplelocks to mutexes and remove the simplelock implementations.
Diffstat (limited to 'sys/gnu/ext2fs')
-rw-r--r-- | sys/gnu/ext2fs/ext2_ihash.c | 27 | ||||
-rw-r--r-- | sys/gnu/ext2fs/ext2_vfsops.c | 25 |
2 files changed, 24 insertions, 28 deletions
diff --git a/sys/gnu/ext2fs/ext2_ihash.c b/sys/gnu/ext2fs/ext2_ihash.c index 89b931d..e1c35a2 100644 --- a/sys/gnu/ext2fs/ext2_ihash.c +++ b/sys/gnu/ext2fs/ext2_ihash.c @@ -40,8 +40,7 @@ #include <sys/lock.h> #include <sys/vnode.h> #include <sys/malloc.h> - -#include <machine/mutex.h> +#include <sys/mutex.h> #include <ufs/ufs/quota.h> #include <ufs/ufs/inode.h> @@ -54,9 +53,7 @@ static MALLOC_DEFINE(M_UFSIHASH, "UFS ihash", "UFS Inode hash tables"); static LIST_HEAD(ihashhead, inode) *ihashtbl; static u_long ihash; /* size of hash table - 1 */ #define INOHASH(device, inum) (&ihashtbl[(minor(device) + (inum)) & ihash]) -#ifndef NULL_SIMPLELOCKS -static struct simplelock ufs_ihash_slock; -#endif +static struct mtx ufs_ihash_mtx; /* * Initialize inode hash table. @@ -66,7 +63,7 @@ ufs_ihashinit() { ihashtbl = hashinit(desiredvnodes, M_UFSIHASH, &ihash); - simple_lock_init(&ufs_ihash_slock); + mtx_init(&ufs_ihash_mtx, "ufs ihash", MTX_DEF); } /* @@ -80,11 +77,11 @@ ufs_ihashlookup(dev, inum) { struct inode *ip; - simple_lock(&ufs_ihash_slock); + mtx_enter(&ufs_ihash_mtx, MTX_DEF); for (ip = INOHASH(dev, inum)->lh_first; ip; ip = ip->i_hash.le_next) if (inum == ip->i_number && dev == ip->i_dev) break; - simple_unlock(&ufs_ihash_slock); + mtx_exit(&ufs_ihash_mtx, MTX_DEF); if (ip) return (ITOV(ip)); @@ -105,18 +102,18 @@ ufs_ihashget(dev, inum) struct vnode *vp; loop: - simple_lock(&ufs_ihash_slock); + mtx_enter(&ufs_ihash_mtx, MTX_DEF); for (ip = INOHASH(dev, inum)->lh_first; ip; ip = ip->i_hash.le_next) { if (inum == ip->i_number && dev == ip->i_dev) { vp = ITOV(ip); mtx_enter(&vp->v_interlock, MTX_DEF); - simple_unlock(&ufs_ihash_slock); + mtx_exit(&ufs_ihash_mtx, MTX_DEF); if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, p)) goto loop; return (vp); } } - simple_unlock(&ufs_ihash_slock); + mtx_exit(&ufs_ihash_mtx, MTX_DEF); return (NULL); } @@ -133,11 +130,11 @@ ufs_ihashins(ip) /* lock the inode, then put it on the appropriate hash list */ lockmgr(&ip->i_vnode->v_lock, LK_EXCLUSIVE, (struct mtx *)0, p); - simple_lock(&ufs_ihash_slock); + mtx_enter(&ufs_ihash_mtx, MTX_DEF); ipp = INOHASH(ip->i_dev, ip->i_number); LIST_INSERT_HEAD(ipp, ip, i_hash); ip->i_flag |= IN_HASHED; - simple_unlock(&ufs_ihash_slock); + mtx_exit(&ufs_ihash_mtx, MTX_DEF); } /* @@ -147,7 +144,7 @@ void ufs_ihashrem(ip) struct inode *ip; { - simple_lock(&ufs_ihash_slock); + mtx_enter(&ufs_ihash_mtx, MTX_DEF); if (ip->i_flag & IN_HASHED) { ip->i_flag &= ~IN_HASHED; LIST_REMOVE(ip, i_hash); @@ -156,5 +153,5 @@ ufs_ihashrem(ip) ip->i_hash.le_prev = NULL; #endif } - simple_unlock(&ufs_ihash_slock); + mtx_exit(&ufs_ihash_mtx, MTX_DEF); } diff --git a/sys/gnu/ext2fs/ext2_vfsops.c b/sys/gnu/ext2fs/ext2_vfsops.c index 12682e4..e7dfbf2 100644 --- a/sys/gnu/ext2fs/ext2_vfsops.c +++ b/sys/gnu/ext2fs/ext2_vfsops.c @@ -56,8 +56,7 @@ #include <sys/disklabel.h> #include <sys/malloc.h> #include <sys/stat.h> - -#include <machine/mutex.h> +#include <sys/mutex.h> #include <ufs/ufs/extattr.h> #include <ufs/ufs/quota.h> @@ -575,23 +574,23 @@ ext2_reload(mountp, cred, p) brelse(bp); loop: - simple_lock(&mntvnode_slock); + mtx_enter(&mntvnode_mtx, MTX_DEF); for (vp = mountp->mnt_vnodelist.lh_first; vp != NULL; vp = nvp) { if (vp->v_mount != mountp) { - simple_unlock(&mntvnode_slock); + mtx_exit(&mntvnode_mtx, MTX_DEF); goto loop; } nvp = vp->v_mntvnodes.le_next; /* * Step 4: invalidate all inactive vnodes. */ - if (vrecycle(vp, &mntvnode_slock, p)) + if (vrecycle(vp, &mntvnode_mtx, p)) goto loop; /* * Step 5: invalidate all cached file data. */ mtx_enter(&vp->v_interlock, MTX_DEF); - simple_unlock(&mntvnode_slock); + mtx_exit(&mntvnode_mtx, MTX_DEF); if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, p)) { goto loop; } @@ -613,9 +612,9 @@ loop: &ip->i_din); brelse(bp); vput(vp); - simple_lock(&mntvnode_slock); + mtx_enter(&mntvnode_mtx, MTX_DEF); } - simple_unlock(&mntvnode_slock); + mtx_exit(&mntvnode_mtx, MTX_DEF); return (0); } @@ -940,7 +939,7 @@ ext2_sync(mp, waitfor, cred, p) /* * Write back each (modified) inode. */ - simple_lock(&mntvnode_slock); + mtx_enter(&mntvnode_mtx, MTX_DEF); loop: for (vp = mp->mnt_vnodelist.lh_first; vp != NULL; vp = nvp) { /* @@ -959,10 +958,10 @@ loop: mtx_exit(&vp->v_interlock, MTX_DEF); continue; } - simple_unlock(&mntvnode_slock); + mtx_exit(&mntvnode_mtx, MTX_DEF); error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK, p); if (error) { - simple_lock(&mntvnode_slock); + mtx_enter(&mntvnode_mtx, MTX_DEF); if (error == ENOENT) goto loop; continue; @@ -971,9 +970,9 @@ loop: allerror = error; VOP_UNLOCK(vp, 0, p); vrele(vp); - simple_lock(&mntvnode_slock); + mtx_enter(&mntvnode_mtx, MTX_DEF); } - simple_unlock(&mntvnode_slock); + mtx_exit(&mntvnode_mtx, MTX_DEF); /* * Force stale file system control information to be flushed. */ |