help-hurd
[Top][All Lists]
Advanced

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

Re: ShadowFS (status)


From: Marcus Brinkmann
Subject: Re: ShadowFS (status)
Date: Thu, 2 Aug 2001 18:37:58 +0200
User-agent: Mutt/1.3.18i

Hi Moritz,

I had a tiny little closer look at your code, and I have a general remark
that should make it more clear what needs to be done for a shadowfs to
behave properly.  A lot of your code is concerned about path names, and
comparing/storing path names.  Like for example the backend filesystems.

This doesn't work too well.  For example, if I do

mkdir /tmp/a
settrans -c /mnt /hurd/shadowfs /tmp/a ...

and then do

mv /tmp/a /tmp/b

then shadowfs should still work as expected, now using the files accesible
through /tmp/b rather than /tmp/a.  For this to work, you have to back away
from using filenames to refer to files, except for the first time you try to
find out about a file.  So I think shadowfs should do a
file_name_lookup (see hurd.h) at startup to get ports to the various
filesystems it should shadow.

Likewise, when someone looks up a file in the shadow filesystem, it should
not try to get the files referring to the absolute filenames, but use
file_name_lookup_under to get the files relative to the directory ports you
get as above.  It is one important part of the design of shadowfs to figure
out which rules should be followed to get ports.  (Should directory shade
other directories entirely or not? etc).

The critical point is to loose the filename concept and switch to the port
concept, and a lot of things should become more clear.  One of the few
places which should be concerned about path names is the
netfs_attempt_lookup function, of course.  Maybe there are others. 
However, they should be comparatively few.

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de



reply via email to

[Prev in Thread] Current Thread [Next in Thread]