diff options
author | mckusick <mckusick@FreeBSD.org> | 2002-10-14 03:20:36 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2002-10-14 03:20:36 +0000 |
commit | 25230d4c6a8ce0a2007e1b2694fcc4ff0869e15c (patch) | |
tree | 002d16cf963ee442c7680ba065d71a690c88783a /sys/fs/ntfs | |
parent | 2cf51225e1370232cb1606878600b9f10c5fd223 (diff) | |
download | FreeBSD-src-25230d4c6a8ce0a2007e1b2694fcc4ff0869e15c.zip FreeBSD-src-25230d4c6a8ce0a2007e1b2694fcc4ff0869e15c.tar.gz |
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.
Diffstat (limited to 'sys/fs/ntfs')
-rw-r--r-- | sys/fs/ntfs/ntfs_inode.h | 2 | ||||
-rw-r--r-- | sys/fs/ntfs/ntfs_subr.c | 1 | ||||
-rw-r--r-- | sys/fs/ntfs/ntfs_vfsops.c | 1 |
3 files changed, 0 insertions, 4 deletions
diff --git a/sys/fs/ntfs/ntfs_inode.h b/sys/fs/ntfs/ntfs_inode.h index 84cde59..13ed443 100644 --- a/sys/fs/ntfs/ntfs_inode.h +++ b/sys/fs/ntfs/ntfs_inode.h @@ -69,8 +69,6 @@ struct ntnode { #define FN_VALID 0x0002 #define FN_AATTRNAME 0x0004 /* space allocated for f_attrname */ struct fnode { - struct lock f_lock; /* fnode lock >Keep this first< */ - LIST_ENTRY(fnode) f_fnlist; struct vnode *f_vp; /* Associatied vnode */ struct ntnode *f_ip; /* Associated ntnode */ diff --git a/sys/fs/ntfs/ntfs_subr.c b/sys/fs/ntfs/ntfs_subr.c index afb1862..20b98a5 100644 --- a/sys/fs/ntfs/ntfs_subr.c +++ b/sys/fs/ntfs/ntfs_subr.c @@ -778,7 +778,6 @@ ntfs_frele( FREE(fp->f_attrname, M_TEMP); if (fp->f_dirblbuf) FREE(fp->f_dirblbuf, M_NTFSDIR); - lockdestroy(&fp->f_lock); FREE(fp, M_NTFSFNODE); ntfs_ntrele(ip); } diff --git a/sys/fs/ntfs/ntfs_vfsops.c b/sys/fs/ntfs/ntfs_vfsops.c index 213813e..1e267a9 100644 --- a/sys/fs/ntfs/ntfs_vfsops.c +++ b/sys/fs/ntfs/ntfs_vfsops.c @@ -741,7 +741,6 @@ ntfs_vgetex( } dprintf(("ntfs_vget: vnode: %p for ntnode: %d\n", vp,ino)); - lockinit(&fp->f_lock, PINOD, "fnode", VLKTIMEOUT, 0); fp->f_vp = vp; vp->v_data = fp; vp->v_type = f_type; |