From 25230d4c6a8ce0a2007e1b2694fcc4ff0869e15c Mon Sep 17 00:00:00 2001 From: mckusick Date: Mon, 14 Oct 2002 03:20:36 +0000 Subject: 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. --- sys/fs/msdosfs/msdosfs_denode.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'sys/fs/msdosfs/msdosfs_denode.c') diff --git a/sys/fs/msdosfs/msdosfs_denode.c b/sys/fs/msdosfs/msdosfs_denode.c index 6a141bec..735e7df 100644 --- a/sys/fs/msdosfs/msdosfs_denode.c +++ b/sys/fs/msdosfs/msdosfs_denode.c @@ -260,8 +260,6 @@ deget(pmp, dirclust, diroffset, depp) return error; } bzero((caddr_t)ldep, sizeof *ldep); - lockinit(&nvp->v_lock, PINOD, "denode", VLKTIMEOUT, 0); - nvp->v_vnlock = &nvp->v_lock; nvp->v_data = ldep; ldep->de_vnode = nvp; ldep->de_flag = 0; @@ -670,7 +668,6 @@ msdosfs_reclaim(ap) #if 0 /* XXX */ dep->de_flag = 0; #endif - lockdestroy(&vp->v_lock); FREE(dep, M_MSDOSFSNODE); vp->v_data = NULL; -- cgit v1.1