From: Richard D. <ri...@ph...> - 2006-09-26 21:53:01
|
Evening! Pete wrote: > Joshua J. Berry wrote: >>> What I can do is open, close, read, write, stat, and generally manage >>> files. Most of the operations are just calling the filesystem function >>> and returning the result (ie, stat). As I get more comfortable, I add >>> functionality to each area, like open, close, read, and write (which now >>> do a bit of versioning and manage the files to some extent). However, I >>> can't seem to do the same thing for directories. For directory access, I >>> can't create dirs at all, and it's pretty simple code. >>> >> Have you looked at the fusexmp filesystem that comes with FUSE? It's a >> simple pass-through filesystem that should serve as a good example (which >> is why it's there). [snip] > Thanks, I got it via the Fedora repos, so that FS wasn't in the list. I > long ago gave up compiling my own packages for time and hassle reasons. > And I must have missed it going over the existing filesystems on the > webpage. I'll check it out, thanks. fusexmp ships with the FUSE sources. You could either download the FUSE sources or take a look at fusexmp in the webcvs at Sourceforge: http://fuse.cvs.sourceforge.net/fuse/fuse/example/ You may also wish to run your filesystem in debug mode. Then you can see exactly what "mkdir foo" translates into, in terms of calls into your FUSE callbacks. For example, here I mount my iPod filesystem, then do "ls /tmp/ipod". [rich@katrina tmp]$ ipodfs -i /media/IPOD -- -d -f ipod unique: 1, opcode: INIT (26), nodeid: 0, insize: 56 INIT: 7.6 INIT: 7.5 unique: 1, error: 0 (Success), outsize: 40 unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 40 unique: 2, error: 0 (Success), outsize: 112 unique: 3, opcode: GETATTR (3), nodeid: 1, insize: 40 unique: 3, error: 0 (Success), outsize: 112 unique: 4, opcode: GETATTR (3), nodeid: 1, insize: 40 unique: 4, error: 0 (Success), outsize: 112 unique: 5, opcode: OPENDIR (27), nodeid: 1, insize: 48 unique: 5, error: 0 (Success), outsize: 32 unique: 6, opcode: GETATTR (3), nodeid: 1, insize: 40 unique: 6, error: 0 (Success), outsize: 112 unique: 7, opcode: READDIR (28), nodeid: 1, insize: 64 unique: 7, error: 0 (Success), outsize: 4112 unique: 8, opcode: LOOKUP (1), nodeid: 1, insize: 89 LOOKUP /alkaline trio - crimson (01) - time to waste.mp3 NODEID: 2 unique: 8, error: 0 (Success), outsize: 136 unique: 9, opcode: LOOKUP (1), nodeid: 1, insize: 86 LOOKUP /alkaline trio - crimson (02) - the poison.mp3 NODEID: 3 unique: 9, error: 0 (Success), outsize: 136 [...] Bye, Rich =] -- Richard Dawe [ http://homepages.nildram.co.uk/~phekda/richdawe/ ] "You can't evaluate a man by logic alone." -- McCoy, "I, Mudd", Star Trek |