[Gluster-users] Exclusive file open in gluster 3.3.0

Anand Avati anand.avati at gmail.com
Wed Jul 11 20:32:19 UTC 2012


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://supercolony.gluster.org/pipermail/gluster-users/attachments/20120711/957b11b4/attachment.html>


More information about the Gluster-users mailing list