kernel - Fix missing B_ORDERED inheritance
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 13 Dec 2012 04:09:45 +0000 (20:09 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 14 Dec 2012 03:16:59 +0000 (19:16 -0800)
* The cluster code was not inheriting B_ORDERED on buffers when constructing
  the rollup buffer due to a coding error.

* I don't think anything uses B_ORDERED so this shouldn't matter, but fix
  it anyway.

Reported-by: vsrinivas
sys/vm/swap_pager.c

index 2ecedeb..a5a6f10 100644 (file)
@@ -1037,7 +1037,7 @@ swap_pager_strategy(vm_object_t object, struct bio *bio)
                                bufx = getpbuf(NULL);
                                biox = &bufx->b_bio1;
                                cluster_append(nbio, bufx);
-                               bufx->b_flags |= (bufx->b_flags & B_ORDERED);
+                               bufx->b_flags |= (bp->b_flags & B_ORDERED);
                                bufx->b_cmd = bp->b_cmd;
                                biox->bio_done = swap_chain_iodone;
                                biox->bio_offset = (off_t)blk << PAGE_SHIFT;