瀏覽代碼

block: clear drain buffer if draining for write command

Clear drain buffer before chaining if the command in question is a
write.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Tejun Heo 17 年之前
父節點
當前提交
db0a2e0099
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      block/blk-merge.c

+ 3 - 0
block/blk-merge.c

@@ -221,6 +221,9 @@ new_segment:
 	} /* segments in rq */
 
 	if (q->dma_drain_size && q->dma_drain_needed(rq)) {
+		if (rq->cmd_flags & REQ_RW)
+			memset(q->dma_drain_buffer, 0, q->dma_drain_size);
+
 		sg->page_link &= ~0x02;
 		sg = sg_next(sg);
 		sg_set_page(sg, virt_to_page(q->dma_drain_buffer),