On Sat, 2008-02-09 at 10:40 +0900, Tejun Heo wrote: > Clear drain buffer before chaining if the command in question is a > write. > > Signed-off-by: Tejun Heo <htejun@xxxxxxxxx> > --- > block/blk-merge.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/block/blk-merge.c b/block/blk-merge.c > index d50cfc8..d0b9031 100644 > --- a/block/blk-merge.c > +++ b/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); > + This is a bit performance impacting, isn't it? If you're worried about data security from a read overrun, then you could do a lazy clear on read completion if the overrun was used (i.e. if there's any residual). James - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html