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

Re: vfs patch 04 (commit candidate)

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 28 Aug 2004 00:32:28 -0700 (PDT)

:Matthew Dillon wrote:
:>     Ok, here's an updated VFS patch.  I consider this a commit candidate. 
:>     This patch fixes a number of nullfs issues that came up from various
:>     people's testing.  The UFS code looks to be quite stable.
:Nullfs is well known to be broken on FreeBSD. Could you explain what are nullfs's 
:presently known limitations, at this point in the VFS work, and what allows nullfs to 
:work properly on DF?

    It should be possible to make it reliable, given enough people's bug
    reports along with associated kernel core dumps.  I have, unfortunately, 
    become rather an expert at that particular piece of spaghetti.

    The problem with nullfs in FreeBSD is simply a lack of maintainance.
    The VFS VOP_*() API is *very* complicated.  A lot of the secondary VFSs
    have severe hacks in them due to the authors not understanding the API.
    nullfs, for example, did not even come close to understanding either
    lookup()'s or rename()'s VOP semantics (and I'm still not sure I got it
    right).  I also found procfs to have severe issues... procfs was so bad
    that it wasn't even using real locking for VOP_LOCK() and VOP_UNLOCK().
    The patch fixes that too, though fixing it might result in more bugs 
    coming to light (but they at least ought to be easy to fix when they do).
    If my nullfs work pans out I'm sure someone will port it back to FreeBSD.

    Note however that I am going to have to rip up all the VFS's yet again
    in order to do the namespace locking.  The new work will significantly
    simplify the VOP semantics but it isn't going to be trivial.  Just about
    every directory vnode and many of the cnp's being passed to VOPs now
    are going to be replaced with namecache pointers.  If the FreeBSD folks
    wait too long nullfs's APIs will be so foreign that it won't be possible
    to port it back :-)

					    Matthew Dillon 

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