aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/hpfs
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2002-10-14 03:20:36 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2002-10-14 03:20:36 +0000
commita5b65058d5e43141777953576267ecf12476e715 (patch)
tree002d16cf963ee442c7680ba065d71a690c88783a /sys/fs/hpfs
parentaa23e9c476813cd08274aa3c321c9469ab1f4383 (diff)
downloadsrc-a5b65058d5e43141777953576267ecf12476e715.tar.gz
src-a5b65058d5e43141777953576267ecf12476e715.zip
Regularize the vop_stdlock'ing protocol across all the filesystems
that use it. Specifically, vop_stdlock uses the lock pointed to by vp->v_vnlock. By default, getnewvnode sets up vp->v_vnlock to reference vp->v_lock. Filesystems that wish to use the default do not need to allocate a lock at the front of their node structure (as some still did) or do a lockinit. They can simply start using vn_lock/VOP_UNLOCK. Filesystems that wish to manage their own locks, but still use the vop_stdlock functions (such as nullfs) can simply replace vp->v_vnlock with a pointer to the lock that they wish to have used for the vnode. Such filesystems are responsible for setting the vp->v_vnlock back to the default in their vop_reclaim routine (e.g., vp->v_vnlock = &vp->v_lock). In theory, this set of changes cleans up the existing filesystem lock interface and should have no function change to the existing locking scheme. Sponsored by: DARPA & NAI Labs.
Notes
Notes: svn path=/head/; revision=105077
Diffstat (limited to 'sys/fs/hpfs')
-rw-r--r--sys/fs/hpfs/hpfs.h1
-rw-r--r--sys/fs/hpfs/hpfs_vfsops.c1
-rw-r--r--sys/fs/hpfs/hpfs_vnops.c1
3 files changed, 0 insertions, 3 deletions
diff --git a/sys/fs/hpfs/hpfs.h b/sys/fs/hpfs/hpfs.h
index 9a28562a9108..9b4fd1dfef34 100644
--- a/sys/fs/hpfs/hpfs.h
+++ b/sys/fs/hpfs/hpfs.h
@@ -333,7 +333,6 @@ struct hpfsmount {
#define H_PARCHANGE 0x0008 /* parent node date was changed */
#define H_INVAL 0x0010 /* Invalid node */
struct hpfsnode {
- struct lock h_lock; /* Must be first, for std vops */
struct mtx h_interlock;
LIST_ENTRY(hpfsnode) h_hash;
diff --git a/sys/fs/hpfs/hpfs_vfsops.c b/sys/fs/hpfs/hpfs_vfsops.c
index a85a2a2ef113..a4e1bb87b030 100644
--- a/sys/fs/hpfs/hpfs_vfsops.c
+++ b/sys/fs/hpfs/hpfs_vfsops.c
@@ -512,7 +512,6 @@ hpfs_vget(
mtx_init(&hp->h_interlock, "hpfsnode interlock", NULL, MTX_DEF);
- lockinit(&hp->h_lock, PINOD, "hpnode", VLKTIMEOUT, 0);
hp->h_flag = H_INVAL;
hp->h_vp = vp;
diff --git a/sys/fs/hpfs/hpfs_vnops.c b/sys/fs/hpfs/hpfs_vnops.c
index 30a788d82d61..5f144a8d9c72 100644
--- a/sys/fs/hpfs/hpfs_vnops.c
+++ b/sys/fs/hpfs/hpfs_vnops.c
@@ -643,7 +643,6 @@ hpfs_reclaim(ap)
hp->h_devvp = NULL;
}
- lockdestroy(&hp->h_lock);
mtx_destroy(&hp->h_interlock);
vp->v_data = NULL;