From 16ac81a5c5a3fec0f0cb4ff7456a1833d5cb437d Mon Sep 17 00:00:00 2001 From: dfr Date: Fri, 18 Apr 1997 14:12:17 +0000 Subject: Don't allow partial buffers to be cluster-comitted. Zero the b_dirty{off,end} after cluster-comitting a group of buffers. With these fixes, I was able to complete a 'make world' with remote src and obj directories. --- sys/nfsclient/nfs_bio.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'sys/nfsclient/nfs_bio.c') diff --git a/sys/nfsclient/nfs_bio.c b/sys/nfsclient/nfs_bio.c index b5912b5..a63fd78 100644 --- a/sys/nfsclient/nfs_bio.c +++ b/sys/nfsclient/nfs_bio.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs_bio.c 8.9 (Berkeley) 3/30/95 - * $Id: nfs_bio.c,v 1.33 1997/03/09 10:21:26 bde Exp $ + * $Id: nfs_bio.c,v 1.34 1997/04/03 07:52:00 dfr Exp $ */ @@ -962,9 +962,12 @@ nfs_doio(bp, cr, p) iomode = NFSV3WRITE_FILESYNC; bp->b_flags |= B_WRITEINPROG; error = nfs_writerpc(vp, uiop, cr, &iomode, &must_commit); - if (!error && iomode == NFSV3WRITE_UNSTABLE) - bp->b_flags |= B_NEEDCOMMIT | B_CLUSTEROK; - else + if (!error && iomode == NFSV3WRITE_UNSTABLE) { + bp->b_flags |= B_NEEDCOMMIT; + if (bp->b_dirtyoff == 0 + && bp->b_dirtyend == bp->b_bufsize) + bp->b_flags |= B_CLUSTEROK; + } else bp->b_flags &= ~B_NEEDCOMMIT; bp->b_flags &= ~B_WRITEINPROG; -- cgit v1.1