On Sat, 2008-01-05 at 05:07 +0100, Michael Kerrisk wrote:
> I think you missed my question on O_APPEND though?

Oh, sorry...

O_APPEND is supported for normal writes, but not for O_DIRECT writes.
The reason for this is that the NFS protocol does not have the
equivalent of an atomic 'append()' RPC request.

The implication is that in an uncached environment such as O_DIRECT, we
cannot guarantee that your write will be appended to the file, since we
would have to know the exact file size in order to place the write. 

If the application does use a private locking scheme, then it can still
emulate append() while in O_DIRECT mode by locking the file against
concurrent writes before doing lseek(fd,0,SEEK_END)+write(fd,buf).

Cheers
  Trond




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

Reply via email to