DragonFly kernel List (threaded) for 2006-01
Re: nullfs stabilization I
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:
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 | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \