nullfs stabilization I

Simon 'corecode' Schubert corecode at
Tue Jan 10 18:23:25 PST 2006

Matthew Dillon wrote:
    cache_lock would create the namecache record in the lower layer
    (recursively), and then operate in the same manner as if it exited in
    the first place.
The problem in this case is that you just don't know which lower 
namecache records to create.  I don't want to guess the name of the 
lower layer from the name of the upper layer, because some filesystem 
might want to remap filenames or files and directories.

dumb idea, but think of a filesystem which sorts files alphabetically in 
directories..., or a filesystem which maps filenames to ones which are 
case-insensitive-safe (so that windows can access fOO and Foo, because 
one is mapped to fo_o_ and one to f_oo...

So at the very moment we do a lock action in the upper layer (i.e. every 
time we do a cache_lookup()), we already have to have the association 
ready.  Which means we need a callback into the vfs;  I just can't think 
of something else.

    This could be done with a VFS function, but I think its probably better
    to make it a separate registration call to create the association between
    layers as part of the struct mount.  There are two situations that need
    to be handled:
    The nullfs layer would thus have to register the relationship as part
    of the mount sequence.  Something like:
	cache_register_shadow(nullfsmountpt, lowerfsmountpt)
Where would we then in turn store this information?  In the mount 
structure?  And where would the callback function pointer be stored then?

Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |      Against  HTML   \
Dude 2c 2 the max   !       Mail + News   / \

More information about the Kernel mailing list