Hello, On Tuesday May 22, 2007, Miklos Szeredi wrote:I work for a similir goal in my bachelor's theses. But my approach is a little bit different. Instead of: I do: 'foo.zip^/foo/bar' or 'foo.zip^/contents/foo/bar' where foo.zip is a ZIP file. See the little '^' in the pathname: it's an escape character. I have a kernel patch which modifies a lookup resolution function and when a normal lookup fails ('foo.zip^/foo/bar' dosn't exist) and the pathname contains '^' it *redirects* the lookup to a FUSE mount. So say we have a FUSE vfs server (called 'RheaVFS') on '/tmp/shadow'. When a process tries to access '/home/xx/foo.zip^/foo/bar' it is in-kernel transparently redirected to '/tmp/shadow/home/xx/foo.zip^/foo/bar' and the vfs server handles all the extraction/compresion/semi-mounting/semi-umounting/whatsoever... Advantages: * 99.9% imho backward compatible. No problems with clever programs doing stat() before open()/opendir(). * you can easily and transparently stack filesystems one on top of another with a clear semantic. Say we have 'foo.tar.gz'; then: 'foo.tar.gz^' is a decompressed TAR *file*; 'foo.tar.gz^^' is a directory * you can pass additional parameters to the vfs server after the '^', eg. 'foo.zip^compresslevel=1/foo/bar' * works with symlinks too Drawbacks: * users must/should be aware of the special escape char '^' * usually only single vfs server per user handles all "virtual" directories --> single point of failure. (But I implemented a quirk which allows restarting the FUSE vfs server with only minor problems) * probably tons of others I don't know.... The project tarball is at: http://veverka.sh.cvut.cz/~sykora/prj/rheavfs-20070523-1239.tar.gz The kernel patch is in the tarball and for your viewing pleasure I've attached it to this email. The patch is againts 2.6.20.1 and works with 2.6.21.1 too. There are two minor failed hunks for 2.6.22-rc2 which I hadn't time to correct. My project is not completed, there's almost no documentation etc. Maybe I will put together some simple README/HOWTO in a few days. I wouldn't present the project at this time, but seeing your post I've thought my approach might be interesting for the discussion. Jara -- I find television very educating. Every time somebody turns on the set, I go into the other room and read a book.
| Linus Torvalds | Linux 2.6.21-rc4 |
| Greg Kroah-Hartman | [PATCH 008/196] Chinese: add translation of volatile-considered-harmful.txt |
| Andrew Morton | -mm merge plans for 2.6.23 |
| Stephane Eranian | Re: [PATCH] fix up perfmon to build on -mm |
git: | |
| David Miller | [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Natalie Protasevich | [BUG] New Kernel Bugs |
| Linus Torvalds | Re: silent semantic changes with reiser4 |
| jim owens | Re: ext4 - getting at birth time (file create time) and getting/setting nanosecond... |
| Alan Cox | Re: impact of 4k sector size on the IO & FS stack |
| Peter Zijlstra | Re: + mm-balance_dirty_pages-reduce-calls-to-global_page_state-to-reduce-c ache-re... |
