NFS client/buffer cache deadlock

Marc Olzheim marcolz at stack.nl
Tue Apr 26 08:17:53 PDT 2005


On Tue, Apr 26, 2005 at 10:07:01AM -0400, Brian Fundakowski Feldman wrote:
> > Could someone from standards comment here ? I believe Garrett is
> > right...
> > (thread is on -hackers and -current)
> 
> What prevents you from using O_FSYNC | O_APPEND to get the
> functionality you desire?  The semantics of IO_UNIT -- atomic writes
> -- are definitely defined and assumed to function properly by the rest
> of the kernel.  Allowing asynchronous unbounded atomic appends is
> impossible, so something must be done to prevent deadlock.  Breaking
> IO_UNIT really shouldn't be considered as a solution.  Automatically
> turning the write into a synchronous + atomic append if an asynchrous
> + atomic append is not possible might follow POLA best.

I don't care whether a user application corrupts it's own data by
writing simultaneously to the same file from different hosts; that's the
choice of the application. What I want is when the application behaves
and is the only one writing to the file, that that writev() succeeds.

I'm okay with the fact that simultaneous huge writes to the same file
over NFS could lead to corruption and that the exact outcome is
undefined.

This is exactly how it was in FreeBSD 4.x and that's perfectly workable.

But that's just my way of looking at it and certainly not ideal. :-/

Marc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-standards/attachments/20050426/9b18a340/attachment.bin


More information about the freebsd-standards mailing list