vnode lock below vfs

Matthew Dillon dillon at
Thu Aug 10 09:19:22 PDT 2006

:btw, in case you haven't looked at it, what Apple seems to have done for
:Darwin8 is put a mutex lock right in the vnode. The vnode operation stub
:grabs this mutex lock, if the flag in the vfs switch says the file system
:isn't smp safe. (This is true for all file systems, as of 10.4.6.)
:The effect is similar to a vnode lock grabbed right at the vnode op call.
:I don't know if this would be of any use for what you are trying to do, rick

    We actually do have a spinlock right in the vnode... its the spinlock
    that is used to interlock the lockmgr lock, but it can be accessed
    independantly of the lockmgr lock.

    I will be using the spinlock to control sequencing of the reference count
    in today's commit (v_usecount and v_holdcnt, don't ask me why the names
    are abbreviated differently :-)).

    We haven't quite gotten the MP lock down to the VFS layer yet, but
    these changes will move it closer.   Since the VOP calls can 
    potentially go through a transport layer doing the MP locking in the
    kernel layer would probably wind up being too messy.  I will probably
    just do the slogwork required to have each target procedure in the
    filesystem obtain and release the MP lock itself.

					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>

More information about the Kernel mailing list