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
Brian Fundakowski Feldman
green at freebsd.org
Sun Jun 12 08:26:14 GMT 2005
On Sun, Jun 12, 2005 at 01:08:33AM -0700, Alfred Perlstein wrote:
> * Brian Fundakowski Feldman <green at freebsd.org> [050611 14:25] wrote:
> > On Sat, Jun 11, 2005 at 10:46:17AM -0700, Alfred Perlstein wrote:
> > > * Brian Fundakowski Feldman <green at 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 at FreeBSD.org \ The Power to Serve! \
Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\
More information about the cvs-src