DragonFly BSD
DragonFly kernel List (threaded) for 2006-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: The Clustering and Userland VFS transport protocol - summary

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 17 May 2006 16:49:21 -0700 (PDT)

    Well, I hit a hangup.  In order for the vnodes to operate well in a
    master<->slave environment, vnode operations have to be dispatched
    with the vnode unlocked.  That is, the locking has to be performed by
    the target rather than the originator.

    So, for example, instead of calling VOP_READ() with a shared lock on
    the vnode held, one would call VOP_READ() with just a vnode ref and
    the target VFS would be responsible for locking the vnode for the

    Fortunately the really complex locking arrangements... lookup+create,
    lookup+delete, lookup+rename, etc, are all target-side operations and
    don't have to be modified.  But just about everything else does.  In
    addition, forced unmounts (umount -f) and descriptor revocation (aka
    revoke()) will have to be handled completely differently.

    On the bright side, the work involved happens to be the same work needed
    to make the descriptor and I/O paths MP safe... or at least MP capable.
    So it looks like I am going to be doing a bunch of MP-related work before
    I can begin work on the userland VFS/CLUSTER coding.


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]