help-hurd
[Top][All Lists]
Advanced

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

ShadowFS (status)


From: Moritz Schulte
Subject: ShadowFS (status)
Date: 02 Aug 2001 15:15:38 +0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7

Hi there,

as I mentioned before, I'm working on a ShadowFS implementation.
Well, the file representation to the user seems to work, but I'm not
sure on how to make file I/O working. The first scratch can be fetched
from:

http://www.chaosdorf.de/moritz/files/shadowfs-0.0.tar.gz.

The problem with I/O: ShadowFS isn't a 'normal filesystem', where a
node (struct node) is automatically connected to a 'store'. Nodes in
ShadowFS are absolutely virtual, because they primarily just store the
path component in them. Different lookups on a file can result in
different 'backend files', which get opened for that access, depending
on the state of the underlying filesystems at the time of the access
(at the time of the dir_lookup).

So, there has to be a way to connect an 'access' with a port to the
backend file. But, libnetfs' interfaces doesn't make that easy, as far
as i can see.

It's netfs_attempt_lookup() job to find out, which file (in string
form) the user wants and which file (port) the user gets. This port
has to be stored somewhere, assigned to that access - but where?

Since a 'struct iouser *' is passed to all the netfs callbacks, i
though about storing this port to the backend file in the 'hook' of
'struct iouser'. But, this seems ugly to me. Furthermore, there are no
user-defined callbacks which can be called to correctly dealloc the
port and free the hook.

Does anybody have an idea on how to do that? I think, the best would
be to improve libnetfs (and change it's interfaces a bit). But, having
a working ShadowFS using the current libnetfs would be cool, too. ;)

        moritz
-- 
Moritz Schulte <moritz@chaosdorf.de> http://www.chaosdorf.de/moritz/
Debian/GNU supporter - http://www.debian.org/ http://www.gnu.org/
GPG fingerprint = 3A14 3923 15BE FD57 FC06  B501 0841 2D7B 6F98 4199



reply via email to

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