On Tue, 2019-10-15 at 12:36 +0200, Niels de Vos wrote: > On Tue, Oct 15, 2019 at 12:20:54PM +0530, Anoop C S wrote: > > Hi all, > > > > This is to check and confirm whether we have an API(or an internal > > implementation which can be exposed as API) to perform operations > > on an > > open file descriptor as a wrapper around existing fcntl() system > > call. > > We do have specific APIs for locks(glfs_posix_lock) and file > > descriptor > > duplication(glfs_dup) which are important among those operations > > listed > > as per man fcntl(2). > > > > At present we have a requirement(very recent) from Samba to set > > file > > descriptor flags through its VFS layer which would need a > > corresponding > > mechanism inside GlusterFS. Due to its absence, VFS module for > > GlusterFS inside Samba will have to workaround with the hack of > > creating fake local file descriptors outside GlusterFS. > > > > Thoughts and suggestions are welcome. > > The fcntl() operations are split when FUSE is used. There in direct > fcntl() call that FUSE passes on, instead it calls lock() and similar > interfaces. I think you refer to F_GETFD and F_SETFD commands for > fcntl(). For all I can see, these do not exist in FUSE, and have not > been added to gfapi either. Not sure if the single supported flag > FD_CLOEXEC can have a benefit on Gluster, as glfs_fini() is expected > to > cleanup everything that gfapi allocates. > > Can you explain your use-case a little more? Quoting the response from my other reply.. > During open/create code path Samba tries to set blocking > flag(O_NONBLOCK on Linux) on open file descriptor through its VFS > layer. Comparing to fcntl() call command would be F_SETFL with > required > flag(O_NONBLOCK). It is an expectation that backend file system(in > this > case GlusterFS) executes this operation and return the result. VFS > module for GlusterFS inside Samba can extract required file > descriptor > but would require a way to set the flag on it. So to be specific, it is F_GETFL and F_SETFL commands that we are looking for to be consumed. _______________________________________________ Community Meeting Calendar: APAC Schedule - Every 2nd and 4th Tuesday at 11:30 AM IST Bridge: https://bluejeans.com/118564314 NA/EMEA Schedule - Every 1st and 3rd Tuesday at 01:00 PM EDT Bridge: https://bluejeans.com/118564314 Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx https://lists.gluster.org/mailman/listinfo/gluster-devel