O_EXCL should work fine on FUSE+GlusterFS. Avati On Wed, Jul 11, 2012 at 1:16 PM, Stephen Pierce <spierce at verifyle.com>wrote: > Short question: Does gluster and the FUSE client support the O_EXCL flag > to open()?**** > > ** ** > > Long question:**** > > So I have several hosts, all using the FUSE client. I mount the same > gluster filesystem using the FUSE client on each host. Then, two processes > (on separate hosts), try to open() the same file with O_CREAT|O_EXCL. Does > the FUSE client and gluster guarantee that only one will be successful (ie: > no race condition exists)? Or do I need to implement the suggested > work-around for NFS in the man page for open()?**** > > ** ** > > Next question: Is anyone actually relying on O_EXCL? :-)**** > > ** ** > > Steve**** > > ** ** > > Open() manpage:**** > > ** ** > > O_EXCL Ensure that this call creates the file: if this flag is > specified in conjunction with**** > > O_CREAT, and pathname already exists, then open() will > fail. The behavior of O_EXCL is**** > > undefined if O_CREAT is not specified.**** > > ** ** > > When these two flags are specified, symbolic links are not > followed: if pathname is a**** > > symbolic link, then open() fails regardless of where the > symbolic link points to.**** > > ** ** > > O_EXCL is only supported on NFS when using NFSv3 or > later on kernel 2.6 or later. In**** > > environments where NFS O_EXCL support is not provided, > programs that rely on it for per-**** > > forming locking tasks will contain a race condition. > Portable programs that want to per-**** > > form atomic file locking using a lockfile, and need to avoid > reliance on NFS support for**** > > O_EXCL, can create a unique file on the same file system > (e.g., incorporating hostname**** > > and PID), and use link(2) to make a link to the lockfile. > If link(2) returns 0, the lock**** > > is successful. Otherwise, use stat(2) on the unique file > to check if its link count has**** > > increased to 2, in which case the lock is also successful.** > ** > > ** ** > > _______________________________________________ > Gluster-users mailing list > Gluster-users at gluster.org > http://gluster.org/cgi-bin/mailman/listinfo/gluster-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://gluster.org/pipermail/gluster-users/attachments/20120711/957b11b4/attachment.htm>