Index: libsrc/posixio.c
===================================================================
--- libsrc/posixio.c (revision 1125)
+++ libsrc/posixio.c (working copy)
@@ -505,6 +505,22 @@
/* copy upper half into lower half */
(void) memcpy(pxp->bf_base, middle, pxp->bf_cnt);
}
+ else /* added to fix nofill bug */
+ {
+ assert(pxp->bf_extent == 2 * pxp->blksz);
+ /* still have to page out lower half, if modified */
+ if(fIsSet(pxp->bf_rflags, RGN_MODIFIED))
+ {
+ assert(pxp->bf_refcount <= 0);
+ status = px_pgout(nciop,
+ pxp->bf_offset,
+ pxp->blksz,
+ pxp->bf_base,
+ &pxp->pos);
+ if(status != ENOERR)
+ return status;
+ }
+ }
pxp->bf_offset = blkoffset;
/* pxp->bf_extent = pxp->blksz; */