Question : Using libhandle from xfsprogs and xfs actions made "by handle"
Hi,
I had a look at the stuff within xfsprogs and it really look pretty nice. One thing is of great interest to me : the libhandle.so library.
I am currently developing a NFS server running in userspace (see http://nfs-ganesha.sourceforge.net for details). As you know, the NFS protocol has a "handle based" semantics in the way it manages FS objects. All objects are identified by a unique filehandle or by their name and the parent's directory filehandle. The trouble is that libC does not include such "by handle" calls to manage FS, only the old fashioned POSIX API which is a "By path" API.
When looking at XFS, I saw there was "open_by_handle" and "path_to_handle" calls. This sounds very very good to me : this sounds like kind of bridge to build a handle-based API to address XFS. But so far, I am a bit stuck : for exporting XFS through my NFS server, I would need to do "by handle" everything that can be done through POSIX calls, open/read/write/close files, create files/directories/symlinks, erasing or moving files... and so on. I do not know if this is possible with the calls in libhandle.so. But if I had such handle based tools, I think I could make a nice NFS server on top of XFS (I did this kind of port for LUSTRE (which has a full handle based API) in my NFS server and I had really good performances). Can someone provide me with information about this ?
Regards
Philippe
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 4 lines · DENIEL Philippe
When looking at XFS, I saw there was "
open_by_handle" and "path_to_handle" calls. This sounds very very good to me : this sounds like kind of bridge to build a handle-based API to address XFS. But so far, I am a bit stuck : for exporting XFS through my NFS server, I would
Quoted 8 lines
need to do "by handle" everything that can be done through POSIX calls, open/read/write/close files, create files/directories/symlinks, erasing or moving files... and so on. I do not know if this is possible with the calls in libhandle.so. But if I had such handle based tools, I think I could make a nice NFS server on top of XFS (I did this kind of port for LUSTRE (which has a full handle based API) in my NFS server and I had really good performances). Can someone provide me with information about this ?
For some reason the handle code currently rejects special files (block/char/fifo) in open_by_handle. I can't see any good reason for that and plan to submit a patch to lift that restriction. Except for that libhandle is exactly what you want - there's various tools that use it for that kind of work, the most prominent is xfsdump/xfsrestore.
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs