⬢ DragonFlyBSD Kernel Audit
DF-5787 / fix.diff
← back to finding ↓ download raw
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -746,6 +746,7 @@
 
 	for (bio = &bp->b_bio1; bio; bio = bio->bio_next) {
 		bio->bio_done = NULL;
+		bio->bio_flags = 0;
 		bio->bio_offset = NOOFFSET;
 	}
 }
@@ -917,7 +918,7 @@
 		bp->b_flags |= bflags;
 		bp->b_cmd = BUF_CMD_READ;
 		bp->b_bio1.bio_done = biodone_sync;
-		bp->b_bio1.bio_flags |= BIO_SYNC;
+		bp->b_bio1.bio_flags = BIO_SYNC;
 		vfs_busy_pages(vp, bp);
 		vn_strategy(vp, &bp->b_bio1);
 		++readwait;
@@ -987,7 +988,7 @@
 	bp->b_cmd = BUF_CMD_WRITE;
 	bp->b_error = 0;
 	bp->b_bio1.bio_done = biodone_sync;
-	bp->b_bio1.bio_flags |= BIO_SYNC;
+	bp->b_bio1.bio_flags = BIO_SYNC;
 	vfs_busy_pages(bp->b_vp, bp);
 
 	/*