summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2008-01-24 12:34:30 +0000
committerattilio <attilio@FreeBSD.org>2008-01-24 12:34:30 +0000
commit7213f4c32b94b60add6400f4213c1ca347bd609f (patch)
treec29223c268b9510bd1f4bee082ad1de97c817c24 /sys/fs
parent5671b69e5898140ead9c08fe7f302dde1d680c63 (diff)
downloadFreeBSD-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.c2
-rw-r--r--sys/fs/hpfs/hpfs_subr.h4
-rw-r--r--sys/fs/hpfs/hpfs_vfsops.c6
-rw-r--r--sys/fs/msdosfs/msdosfs_denode.c6
-rw-r--r--sys/fs/ntfs/ntfs_subr.c19
-rw-r--r--sys/fs/nullfs/null_vnops.c3
-rw-r--r--sys/fs/nwfs/nwfs_node.c21
-rw-r--r--sys/fs/smbfs/smbfs_node.c7
-rw-r--r--sys/fs/udf/udf_vfsops.c2
-rw-r--r--sys/fs/unionfs/union_subr.c2
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)
OpenPOWER on IntegriCloud