Hello. Pranith and Niels encouraged me to share here my toy project of simple FUSE bridge that uses GlusterFS API [1]. The rationale for this is that FUSE bridge currently present in GlusterFS code does not use GlusterFS API, and that is considered to be wrong, and there are some plans to replace it with modern solution. xglfs code could potentially go under glusterfs tree if the developers decide it should happen. Also, it could be rpm'ed and suggested to Fedora users. Now xglfs it is just a separate executable that relies on glusterfs-devel and fuse-devel packages and does simple conversion between FUSE VFS calls and GlusterFS API. Thanks to API completeness (well, glfs_truncate() is an exception, AFAIK), this custom bridge is really thin and small. As a guide I used Big Brother File System code by Joseph J. Pfeiffer, Jr. [2] that is freely available in the Internet (version 2014-06-12, but newer version has been released recently). However, I've adopted it to current FUSE libs reality just by inspecting /usr/include/fuse/fuse.h carefully and defining FUSE_USE_VERSION=26 explicitly. What I would like for reviewers to pay an attention for: * error path handling correctness (mostly, negated errno value is returned, is that correct?); * fops semantic correctness; * everything else you would like to comment on or suggest. The code itself has been verified by GCC, Clang (+analyzer), Intel C Compiler, cppcheck and Valgrind. No idea what could go wrong there :). However, I'm not responsible for data damage caused by this project, of course. Some things remain not so clear to me: * FUSE .bmap fop (wtf is that?); * trickery with .fgetattr (do we need that trickery?); * .flush fop (no GlusterFS equivalent?); * fsync/fdatasync difference for GlusterFS; * .fsyncdir fop (again, wtf?); * WHERE IS MY glfs_truncate()? Feel free to happily accept this project or ignore it silently. Nevertheless, I would be happy to see your pull requests or comments, or even results of some test you might want to perform on you critical production. Also, I know that Soumya has already tried xglfs, and I would be glad if she shares some experience on it. Best wishes, post-factum [1] https://github.com/pfactum/xglfs [2] http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/ _______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-devel