diff options
author | attilio <attilio@FreeBSD.org> | 2008-01-24 12:34:30 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2008-01-24 12:34:30 +0000 |
commit | 7213f4c32b94b60add6400f4213c1ca347bd609f (patch) | |
tree | c29223c268b9510bd1f4bee082ad1de97c817c24 /sys/fs | |
parent | 5671b69e5898140ead9c08fe7f302dde1d680c63 (diff) | |
download | FreeBSD-src-7213f4c32b94b60add6400f4213c1ca347bd609f.zip FreeBSD-src-7213f4c32b94b60add6400f4213c1ca347bd609f.tar.gz |
Cleanup lockmgr interface and exported KPI:
- Remove the "thread" argument from the lockmgr() function as it is
always curthread now
- Axe lockcount() function as it is no longer used
- Axe LOCKMGR_ASSERT() as it is bogus really and no currently used.
Hopefully this will be soonly replaced by something suitable for it.
- Remove the prototype for dumplockinfo() as the function is no longer
present
Addictionally:
- Introduce a KASSERT() in lockstatus() in order to let it accept only
curthread or NULL as they should only be passed
- Do a little bit of style(9) cleanup on lockmgr.h
KPI results heavilly broken by this change, so manpages and
FreeBSD_version will be modified accordingly by further commits.
Tested by: matteo
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/cd9660/cd9660_vfsops.c | 2 | ||||
-rw-r--r-- | sys/fs/hpfs/hpfs_subr.h | 4 | ||||
-rw-r--r-- | sys/fs/hpfs/hpfs_vfsops.c | 6 | ||||
-rw-r--r-- | sys/fs/msdosfs/msdosfs_denode.c | 6 | ||||
-rw-r--r-- | sys/fs/ntfs/ntfs_subr.c | 19 | ||||
-rw-r--r-- | sys/fs/nullfs/null_vnops.c | 3 | ||||
-rw-r--r-- | sys/fs/nwfs/nwfs_node.c | 21 | ||||
-rw-r--r-- | sys/fs/smbfs/smbfs_node.c | 7 | ||||
-rw-r--r-- | sys/fs/udf/udf_vfsops.c | 2 | ||||
-rw-r--r-- | sys/fs/unionfs/union_subr.c | 2 |
10 files changed, 32 insertions, 40 deletions
diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c index f4a370f..41502d1 100644 --- a/sys/fs/cd9660/cd9660_vfsops.c +++ b/sys/fs/cd9660/cd9660_vfsops.c @@ -684,7 +684,7 @@ cd9660_vget_internal(mp, ino, flags, vpp, relocated, isodir) ip->i_vnode = vp; ip->i_number = ino; - lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL, td); + lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL); error = insmntque(vp, mp); if (error != 0) { free(ip, M_ISOFSNODE); diff --git a/sys/fs/hpfs/hpfs_subr.h b/sys/fs/hpfs/hpfs_subr.h index dd00432..e8a24b4 100644 --- a/sys/fs/hpfs/hpfs_subr.h +++ b/sys/fs/hpfs/hpfs_subr.h @@ -79,9 +79,9 @@ int hpfs_breadstruct (struct hpfsmount *, lsn_t, u_int, u_int32_t, #if 0 #define hpfs_hplock(hp, p) \ - lockmgr(&(hp)->h_intlock, LK_EXCLUSIVE, (p), curthread) + lockmgr(&(hp)->h_intlock, LK_EXCLUSIVE, (p)) #define hpfs_hpunlock(hp, p) \ - lockmgr(&(hp)->h_intlock, LK_RELEASE, (p), curthread) + lockmgr(&(hp)->h_intlock, LK_RELEASE, (p)) #endif int hpfs_hpbmap (struct hpfsnode *, daddr_t, daddr_t *, int *); diff --git a/sys/fs/hpfs/hpfs_vfsops.c b/sys/fs/hpfs/hpfs_vfsops.c index 1e419e0..7fbe56f 100644 --- a/sys/fs/hpfs/hpfs_vfsops.c +++ b/sys/fs/hpfs/hpfs_vfsops.c @@ -453,7 +453,6 @@ hpfs_vget( struct hpfsnode *hp; struct buf *bp; int error; - struct thread *td; dprintf(("hpfs_vget(0x%x): ",ino)); @@ -507,14 +506,13 @@ hpfs_vget( hp->h_mode = hpmp->hpm_mode; hp->h_devvp = hpmp->hpm_devvp; - td = curthread; - lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL, td); + lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL); error = insmntque(vp, mp); if (error != 0) { free(hp, M_HPFSNO); return (error); } - error = vfs_hash_insert(vp, ino, flags, td, vpp, NULL, NULL); + error = vfs_hash_insert(vp, ino, flags, curthread, vpp, NULL, NULL); if (error || *vpp != NULL) return (error); diff --git a/sys/fs/msdosfs/msdosfs_denode.c b/sys/fs/msdosfs/msdosfs_denode.c index e3b962a..8fd61cd 100644 --- a/sys/fs/msdosfs/msdosfs_denode.c +++ b/sys/fs/msdosfs/msdosfs_denode.c @@ -105,7 +105,6 @@ deget(pmp, dirclust, diroffset, depp) struct denode *ldep; struct vnode *nvp, *xvp; struct buf *bp; - struct thread *td; #ifdef MSDOSFS_DEBUG printf("deget(pmp %p, dirclust %lu, diroffset %lx, depp %p)\n", @@ -171,15 +170,14 @@ deget(pmp, dirclust, diroffset, depp) ldep->de_inode = inode; fc_purge(ldep, 0); /* init the fat cache for this denode */ - td = curthread; - lockmgr(nvp->v_vnlock, LK_EXCLUSIVE, NULL, td); + lockmgr(nvp->v_vnlock, LK_EXCLUSIVE, NULL); error = insmntque(nvp, mntp); if (error != 0) { FREE(ldep, M_MSDOSFSNODE); *depp = NULL; return (error); } - error = vfs_hash_insert(nvp, inode, LK_EXCLUSIVE, td, &xvp, + error = vfs_hash_insert(nvp, inode, LK_EXCLUSIVE, curthread, &xvp, de_vncmpf, &inode); if (error) { *depp = NULL; diff --git a/sys/fs/ntfs/ntfs_subr.c b/sys/fs/ntfs/ntfs_subr.c index 330252f..f05a915 100644 --- a/sys/fs/ntfs/ntfs_subr.c +++ b/sys/fs/ntfs/ntfs_subr.c @@ -358,8 +358,7 @@ ntfs_ntget(ip) mtx_lock(&ip->i_interlock); ip->i_usecount++; - lockmgr(&ip->i_lock, LK_EXCLUSIVE | LK_INTERLOCK, &ip->i_interlock, - curthread); + lockmgr(&ip->i_lock, LK_EXCLUSIVE | LK_INTERLOCK, &ip->i_interlock); return 0; } @@ -390,8 +389,7 @@ ntfs_ntlookup( *ipp = ip; return (0); } - } while (lockmgr(&ntfs_hashlock, LK_EXCLUSIVE | LK_SLEEPFAIL, NULL, - curthread)); + } while (lockmgr(&ntfs_hashlock, LK_EXCLUSIVE | LK_SLEEPFAIL, NULL)); MALLOC(ip, struct ntnode *, sizeof(struct ntnode), M_NTFSNTNODE, M_WAITOK | M_ZERO); @@ -413,7 +411,7 @@ ntfs_ntlookup( ntfs_nthashins(ip); - lockmgr(&ntfs_hashlock, LK_RELEASE, NULL, curthread); + lockmgr(&ntfs_hashlock, LK_RELEASE, NULL); *ipp = ip; @@ -449,8 +447,7 @@ ntfs_ntput(ip) #endif if (ip->i_usecount > 0) { - lockmgr(&ip->i_lock, LK_RELEASE|LK_INTERLOCK, &ip->i_interlock, - curthread); + lockmgr(&ip->i_lock, LK_RELEASE|LK_INTERLOCK, &ip->i_interlock); return; } @@ -1982,7 +1979,7 @@ ntfs_toupper_use(mp, ntmp) struct vnode *vp; /* get exclusive access */ - lockmgr(&ntfs_toupper_lock, LK_EXCLUSIVE, NULL, curthread); + lockmgr(&ntfs_toupper_lock, LK_EXCLUSIVE, NULL); /* only read the translation data from a file if it hasn't been * read already */ @@ -2005,7 +2002,7 @@ ntfs_toupper_use(mp, ntmp) out: ntfs_toupper_usecount++; - lockmgr(&ntfs_toupper_lock, LK_RELEASE, NULL, curthread); + lockmgr(&ntfs_toupper_lock, LK_RELEASE, NULL); return (error); } @@ -2017,7 +2014,7 @@ void ntfs_toupper_unuse() { /* get exclusive access */ - lockmgr(&ntfs_toupper_lock, LK_EXCLUSIVE, NULL, curthread); + lockmgr(&ntfs_toupper_lock, LK_EXCLUSIVE, NULL); ntfs_toupper_usecount--; if (ntfs_toupper_usecount == 0) { @@ -2032,7 +2029,7 @@ ntfs_toupper_unuse() #endif /* release the lock */ - lockmgr(&ntfs_toupper_lock, LK_RELEASE, NULL, curthread); + lockmgr(&ntfs_toupper_lock, LK_RELEASE, NULL); } int diff --git a/sys/fs/nullfs/null_vnops.c b/sys/fs/nullfs/null_vnops.c index cdc45b7..d0193fc 100644 --- a/sys/fs/nullfs/null_vnops.c +++ b/sys/fs/nullfs/null_vnops.c @@ -674,8 +674,7 @@ null_reclaim(struct vop_reclaim_args *ap) vnlock = vp->v_vnlock; vp->v_vnlock = &vp->v_lock; if (lowervp) { - lockmgr(vp->v_vnlock, - LK_EXCLUSIVE|LK_INTERLOCK, VI_MTX(vp), curthread); + lockmgr(vp->v_vnlock, LK_EXCLUSIVE | LK_INTERLOCK, VI_MTX(vp)); vput(lowervp); } else panic("null_reclaim: reclaiming an node with now lowervp"); diff --git a/sys/fs/nwfs/nwfs_node.c b/sys/fs/nwfs/nwfs_node.c index e4309fa..7a49641 100644 --- a/sys/fs/nwfs/nwfs_node.c +++ b/sys/fs/nwfs/nwfs_node.c @@ -137,7 +137,6 @@ static int nwfs_allocvp(struct mount *mp, ncpfid fid, struct nw_entry_info *fap, struct vnode *dvp, struct vnode **vpp) { - struct thread *td = curthread; /* XXX */ struct nwnode *np; struct nwnode_hash_head *nhpp; struct nwmount *nmp = VFSTONWFS(mp); @@ -145,20 +144,20 @@ nwfs_allocvp(struct mount *mp, ncpfid fid, struct nw_entry_info *fap, int error; loop: - lockmgr(&nwhashlock, LK_EXCLUSIVE, NULL, td); + lockmgr(&nwhashlock, LK_EXCLUSIVE, NULL); rescan: if (nwfs_hashlookup(nmp, fid, &np) == 0) { vp = NWTOV(np); mtx_lock(&vp->v_interlock); - lockmgr(&nwhashlock, LK_RELEASE, NULL, td); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td)) + lockmgr(&nwhashlock, LK_RELEASE, NULL); + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, curthread)) goto loop; if (fap) np->n_attr = fap->attributes; *vpp = vp; return(0); } - lockmgr(&nwhashlock, LK_RELEASE, NULL, td); + lockmgr(&nwhashlock, LK_RELEASE, NULL); if (fap == NULL || ((fap->attributes & aDIR) == 0 && dvp == NULL)) panic("nwfs_allocvp: fap = %p, dvp = %p\n", fap, dvp); @@ -190,7 +189,7 @@ rescan: np->n_parent = VTONW(dvp)->n_fid; } vp->v_vnlock->lk_flags |= LK_CANRECURSE; - lockmgr(&nwhashlock, LK_EXCLUSIVE, NULL, td); + lockmgr(&nwhashlock, LK_EXCLUSIVE, NULL); /* * Another process can create vnode while we blocked in malloc() or * getnewvnode(). Rescan list again. @@ -206,7 +205,7 @@ rescan: nhpp = NWNOHASH(fid); LIST_INSERT_HEAD(nhpp, np, n_hash); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); - lockmgr(&nwhashlock, LK_RELEASE, NULL, td); + lockmgr(&nwhashlock, LK_RELEASE, NULL); ASSERT_VOP_LOCKED(dvp, "nwfs_allocvp"); if (vp->v_type == VDIR && dvp && (dvp->v_vflag & VV_ROOT) == 0) { @@ -239,9 +238,9 @@ nwfs_lookupnp(struct nwmount *nmp, ncpfid fid, struct thread *td, { int error; - lockmgr(&nwhashlock, LK_EXCLUSIVE, NULL, td); + lockmgr(&nwhashlock, LK_EXCLUSIVE, NULL); error = nwfs_hashlookup(nmp, fid, npp); - lockmgr(&nwhashlock, LK_RELEASE, NULL, td); + lockmgr(&nwhashlock, LK_RELEASE, NULL); return error; } @@ -274,9 +273,9 @@ nwfs_reclaim(ap) NCPVNDEBUG("%s: has no parent ?\n",np->n_name); } } - lockmgr(&nwhashlock, LK_EXCLUSIVE, NULL, td); + lockmgr(&nwhashlock, LK_EXCLUSIVE, NULL); LIST_REMOVE(np, n_hash); - lockmgr(&nwhashlock, LK_RELEASE, NULL, td); + lockmgr(&nwhashlock, LK_RELEASE, NULL); if (nmp->n_root == np) { nmp->n_root = NULL; } diff --git a/sys/fs/smbfs/smbfs_node.c b/sys/fs/smbfs/smbfs_node.c index 20ac89d..d2993c6 100644 --- a/sys/fs/smbfs/smbfs_node.c +++ b/sys/fs/smbfs/smbfs_node.c @@ -58,8 +58,10 @@ #include <fs/smbfs/smbfs_subr.h> #define SMBFS_NOHASH(smp, hval) (&(smp)->sm_hash[(hval) & (smp)->sm_hashlen]) -#define smbfs_hash_lock(smp, td) lockmgr(&smp->sm_hashlock, LK_EXCLUSIVE, NULL, td) -#define smbfs_hash_unlock(smp, td) lockmgr(&smp->sm_hashlock, LK_RELEASE, NULL, td) +#define smbfs_hash_lock(smp, td) \ + lockmgr(&smp->sm_hashlock, LK_EXCLUSIVE, NULL) +#define smbfs_hash_unlock(smp, td) \ + lockmgr(&smp->sm_hashlock, LK_RELEASE, NULL) extern struct vop_vector smbfs_vnodeops; /* XXX -> .h file */ @@ -308,7 +310,6 @@ smbfs_reclaim(ap) } */ *ap; { struct vnode *vp = ap->a_vp; - struct thread *td = ap->a_td; struct vnode *dvp; struct smbnode *np = VTOSMB(vp); struct smbmount *smp = VTOSMBFS(vp); diff --git a/sys/fs/udf/udf_vfsops.c b/sys/fs/udf/udf_vfsops.c index 362a337..7485991 100644 --- a/sys/fs/udf/udf_vfsops.c +++ b/sys/fs/udf/udf_vfsops.c @@ -613,7 +613,7 @@ udf_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp) unode->udfmp = udfmp; vp->v_data = unode; - lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL, td); + lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL); error = insmntque(vp, mp); if (error != 0) { uma_zfree(udf_zone_node, unode); diff --git a/sys/fs/unionfs/union_subr.c b/sys/fs/unionfs/union_subr.c index 590d472..2db12a5 100644 --- a/sys/fs/unionfs/union_subr.c +++ b/sys/fs/unionfs/union_subr.c @@ -198,7 +198,7 @@ unionfs_noderem(struct vnode *vp, struct thread *td) vp->v_vnlock = &(vp->v_lock); vp->v_data = NULL; - lockmgr(vp->v_vnlock, LK_EXCLUSIVE | LK_INTERLOCK, VI_MTX(vp), td); + lockmgr(vp->v_vnlock, LK_EXCLUSIVE | LK_INTERLOCK, VI_MTX(vp)); if (lvp != NULLVP) VOP_UNLOCK(lvp, 0); if (uvp != NULLVP) |