Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Jun 2005 04:26:12 -0400
From:      Brian Fundakowski Feldman <green@freebsd.org>
To:        Alfred Perlstein <alfred@freebsd.org>
Cc:        cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/nfsclient nfs_bio.c nfs_vfsops.c nfsargs.h nfsmount.h src/sys/sys buf.h bufobj.h src/sys/kern vfs_bio.c
Message-ID:  <20050612082612.GF66188@green.homeunix.org>
In-Reply-To: <20050612080833.GJ17867@elvis.mu.org>
References:  <200506102350.j5ANofFM008212@repoman.freebsd.org> <20050611034930.GY17867@elvis.mu.org> <20050611064956.GC66188@green.homeunix.org> <20050611141021.GD17867@elvis.mu.org> <20050611170425.GD66188@green.homeunix.org> <20050611174617.GE17867@elvis.mu.org> <20050611212534.GE66188@green.homeunix.org> <20050612080833.GJ17867@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jun 12, 2005 at 01:08:33AM -0700, Alfred Perlstein wrote:
> * Brian Fundakowski Feldman <green@freebsd.org> [050611 14:25] wrote:
> > On Sat, Jun 11, 2005 at 10:46:17AM -0700, Alfred Perlstein wrote:
> > > * Brian Fundakowski Feldman <green@freebsd.org> [050611 10:04] wrote:
> > > > 
> > > > Well, the easy solution is just fsync(2) :) This change jibes with
> > > > Terry's explanation (thanks, Juli).  It would be good to implement
> > > > the rest of the functionality for non-blocking NFS client, too, but I
> > > > think that can be dne gradually over time.
> > > 
> > > lol.
> > > FWIW, I was aware of Terry's explanation, I just consider it bunk.
> > 
> > Heh.  Well, we can always throw things under a kernel option.  I never
> > saw Terry's e-mail on the topic until just now -- my understanding was
> > that this was generally the Right Thing To Do after spending a while
> > reading POSIX/SUS (due to gad pointing out that it was definitely a
> > bad idea to just return short writes).
> 
> Seriously, have you tested what happens to a libc_r app that
> opens an nfs file F_SYNC?  My guess is that it's not pretty.

This code path is related to O_NONBLOCK, not O_FSYNC.  O_FSYNC is
synonymous with the slow fallback path that large transactional block
now takes, rather than deadlocking.  O_NONBLOCK really means that
whatever they do, they are required to check for EAGAIN.

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050612082612.GF66188>