On Thu, 2008-01-03 at 11:10 +0100, Michael Kerrisk wrote:
> Hi Trond,
> 
> Trond Myklebust wrote:
> > On Wed, 2008-01-02 at 10:55 +0100, Michael Kerrisk wrote:
> >> Hey Trond,
> >>
> >> Would you take a quick look at
> >>
> >> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453946
> >>
> >> Do you have some insights on this?  What should the man page say about
> >> current support of O_EXCL on NFS?
> >>
> >> Cheers,
> >>
> >> Michael
> > 
> > Hi Michael,
> > 
> > Timo is correct. O_EXCL has been supported for NFSv3 (and NFSv4) ever
> > since the 2.6 series kernels came out.
> > 
> > However, please note that
> >       * it is not supported for any 2.4.x kernels, since that would
> >         require some VFS re-engineering that is not compatible with the
> >         'stable kernel' rules.
> >       * As Timo states, the NFSv2 protocol cannot support O_EXCL
> >         semantics.
> 
> Thanks.  I've rewritten the text as shown below.
> 
> I also have another question: is O_APPEND supported in NFSv3 or NFSv4?
> 
> > I think the second point warrants keeping the link() workaround mention,
> > though, since people who are interested in writing completely portable
> > software may still find it useful. For instance, a lot of mail delivery
> > setups are still using the type of locking scheme described there.
> 
> Yes, that makes sense.
> 
> For man-pages-2.75, I rewrote the paragraph as shown here.  Could you
> confirm that this is okay?
> 
>               O_EXCL is not supported on NFS file systems before
>               NFSv3  or  on  Linux before kernel 2.6; it is sup-

I'd probably just say 'not supported on NFSv2'. There is not NFSv1, so
this would be quite unambiguous.

>               ported on Linux  2.6  and  later,  with  NFSv3  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 condi-
>               tion.  Portable  programs  that  want  to  perform
>               atomic  file locking using a lockfile, and need to
>               avoid reliance on NFS support for O_EXCL, can cre-
>               ate  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.

Looks good otherwise.

Cheers
  Trond




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to