NFS client/buffer cache deadlock

Brian Fundakowski Feldman green at FreeBSD.ORG
Fri Apr 22 08:11:57 PDT 2005


On Wed, Apr 20, 2005 at 01:29:10PM -0400, Garrett Wollman wrote:
> <<On Wed, 20 Apr 2005 11:52:33 -0400, Brian Fundakowski Feldman <green at FreeBSD.ORG> said:
> 
> > I think the first is more useful behavior than the last.  Supporting it
> > should be exactly the same as supporting what happens if the actual
> > filesystem fills up.  In this case, the filesystem is being requested to
> > write more "than there is room for."
> 
> Returning a short write for operations on regular files would
> definitely be considered astonishing.  The changes that you have made
> should be considered flow control, not admission control, and should
> appear to the user no differently than if we were waiting for a slow
> disk to write something; i.e., the user thread should be blocked until
> either the entire write completes, or the process is interrupted by a
> signal.

Can you find any evidence that it's acceptable to interleave multiple
writers that are doing O_APPEND?  At best, to do what you're asking,
they could be kept from being interleaved from the context of one
specific NFS client host...

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green at FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\


More information about the freebsd-current mailing list