Re: NFS client/buffer cache deadlock

From: Brian Fundakowski Feldman <green_at_FreeBSD.ORG>
Date: Wed, 20 Apr 2005 13:59:46 -0400
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.

So what _would_ be consistent for nfs_bio.c::nfs_write()?  IO_UNIT is
set for all write calls which means "atomic", and nfs_rslock() and
O_APPEND appear to at least attempt this.  Please take a detailed look
at the current system and the changes... it's far less clear-cut than
POLA dictates.

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green_at_FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\
Received on Wed Apr 20 2005 - 16:01:39 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:32 UTC