Projects / fuselagefs

fuselagefs

fuselagefs consists of a C++ wrapper class for FUSE called Fuselagefs, as well as Delegatefs, which is a Fuselagefs subclass that delegates all operations to an underlying base filesystem. With Delegatefs, you can expose dir1 at mountpoint dir2 very easily as a FUSE filesystem. Subclasses of Delegatefs can then be created, which add a little extra functionality to the delegation operation but rely on the parent class to perform the work and return errors to FUSE in an appropriate manner. An example subclass is petardfs.

Tags Filesystems
Licenses GPL
Operating Systems POSIX Linux
Implementation C++

Tweet this project Short link

Rss Recent releases

  • Rrelease-mid
  •  22 Nov 2008 00:45
  • Rrelease-after

Changes: This release adds BASEDIR handling to main(). It fixes a bug in delegatefs xattr methods.

No changes have been submitted for this release.

Rss Recent comments

Rcomment-before 12 Nov 2008 15:57 Rcomment-trans garpinc Rcomment-after
Rcomment-before 11 Nov 2008 22:34 Rcomment-trans garpinc Rcomment-after

Re: enhancement request...
fyi: i will be checking in fuse-cache to sourceforge and i'm waiting for approval to add project..

Rcomment-before 11 Nov 2008 22:33 Rcomment-trans garpinc Rcomment-after

enhancement request...
I have created a filesystem fuse-cache based on the excellent work you've done for fuselagefs.. One of my requirements is to mount filesystem from fstab. Rather than -u option then the filesystem is passed as an arg to the executable and hence must be passed in to fuselagefs through call:

return myfuse.main( fuseArgs );

and fuselagefs must then make the BASEDIR be that..

to facilitate this I added following to my local copy and i'm hoping you can include it in the distribution:

1) I moved up BASEDIR for scoping and made it 0 by default:

const char* BASEDIR = 0;

namespace Fuselage

2) added following to main so if -u is not supplied it will attempt to get filesystem by popping last arg from fuseArgs

int Fuselagefs::main( list<string>& fuseArgs )

{

if (BASEDIR == 0) {

string baseDir = fuseArgs.back();

LOG << "popping out base dir:" << baseDir << endl;

BASEDIR = baseDir.c_str();

fuseArgs.pop_back();

}

E9ba94f3eb7ee961bbabd1a4a8ccdc42_thumb

Project Spotlight

GNMS

A tool to monitor the states of network elements.

4367a62129bf0aa99f6a48b21a1c7566_thumb

Project Spotlight

subtle

A tiling window manager with a very flexible and dynamic layout.