On Sat, Jun 19, 2004 at 06:17:15AM +0000, YAMAMOTO Takashi wrote: > > Module Name: src > Committed By: yamt > Date: Sat Jun 19 06:17:15 UTC 2004 > > Modified Files: > src/sys/miscfs/genfs: layer_vnops.c > > Log Message: > layer_islocked: check a status of the lower vnode as well. Actually I think it is about time we rip out the shadow locking that layered file systems are doing. When it was added, a number of file systems (nfs, kernfs, procfs) didn't do real node locking; they used genfs_nolock(). Now there are very few uses of genfs_nolock(), so I think we can just remove it. The only users I still see are: spec_lock -- probably should stay "nolock" as I don't think the device aliasing code handles lock-state transfer, and it's probably better to do nothing than rely on incorrect state. sync_lock -- not sure about this one. Do we still use it given our new fss implementation? mfs_lock -- AFAICT used for the node that is the "device" node for an mfs mount. Probably can be changed to genfs_lock() w/o issue - I think only the bio routines use this node, and they never played with the vnode lock before. :-) union_lock -- has a call to genfs_nolock(). cvs blame indicates we got it from the Lite 2 merge, but I can't figure out what it's doing, other than possibly unlocking the interlock. Regardless, has no impact on layered file systems on top of a unionfs. With the shadow locking gone, there will be no need to look at v_lock's state. Take care, Bill
Attachment:
pgpjnHhRB73j2.pgp
Description: PGP signature