I've managed to rewrite deltafs.c to fusexmp-ll-fh.c.
I've taken a lot from deltafs. But it's only an overlay fs,
so the construction to deal with different branches is left out.
This made the whole filesystem easier, no types, no merging, no whiteout etc.
Futher I've made the hash function easier. Now it's basically a
modulo. If someone has
reasons to use a better one, please notice.
It has three parameters:
--bind-directory the directory to mirror, default /
--tmp-directory the directory to store temporary files (for mknode,
rename), default /tmp
I've added debug statements. Switch it on with DEBUG 1.
Also I've added the setxattr/getxattr functions. I haven't tested these yet.
The system calls are done through the filedescriptor on the underlying fs.
It's not hard to do that directly via the normal calls. I've been
thinking to make it an option:
make use of the "normal" function (after appending the bind directory
and the local fuse path)
or the "at" functions.
The local fuse path (the one relative to the mountpoint) is determined anyway.
If you have some comments please react.