GitHub

Original file line numberDiff line numberDiff line change

@@ -11,7 +11,7 @@

1111

* 2. Absolutely no warranty of function or purpose is made by the author

1212

* John S. Dyson.

1313

*

14-

* $Id: vfs_bio.c,v 1.194 1999/01/21 08:29:05 dillon Exp $

14+

* $Id: vfs_bio.c,v 1.195 1999/01/21 09:19:33 dillon Exp $

1515

*/

1616
1717

/*

@@ -577,7 +577,10 @@ brelse(struct buf * bp)

577577

if (bp->b_flags & B_LOCKED)

578578

bp->b_flags &= ~B_ERROR;

579579
580-

if ((bp->b_flags & (B_NOCACHE | B_INVAL | B_ERROR | B_FREEBUF)) ||

580+

if ((bp->b_flags & (B_READ | B_ERROR)) == B_ERROR) {

581+

bp->b_flags &= ~B_ERROR;

582+

bdirty(bp);

583+

} else if ((bp->b_flags & (B_NOCACHE | B_INVAL | B_ERROR | B_FREEBUF)) ||

581584

(bp->b_bufsize <= 0)) {

582585

bp->b_flags |= B_INVAL;

583586

if (LIST_FIRST(&bp->b_dep) != NULL && bioops.io_deallocate)

Read the original on github.com ↗