when doing vinvalbuf (fix for itrunc from noemi@osf.org)
SCCS-vsn: sys/kern/vfs_bio.c 7.21
SCCS-vsn: sys/kern/vfs_cluster.c 7.21
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * @(#)vfs_bio.c 7.20 (Berkeley) %G%
+ * @(#)vfs_bio.c 7.21 (Berkeley) %G%
(void) bwrite(bp);
break;
}
(void) bwrite(bp);
break;
}
- bp->b_flags |= B_INVAL;
+ if (bp->b_vp != vp)
+ reassignbuf(bp, bp->b_vp);
+ else
+ bp->b_flags |= B_INVAL;
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * @(#)vfs_cluster.c 7.20 (Berkeley) %G%
+ * @(#)vfs_cluster.c 7.21 (Berkeley) %G%
(void) bwrite(bp);
break;
}
(void) bwrite(bp);
break;
}
- bp->b_flags |= B_INVAL;
+ if (bp->b_vp != vp)
+ reassignbuf(bp, bp->b_vp);
+ else
+ bp->b_flags |= B_INVAL;