On 2019/12/19 4:42, Dmitry Fomichev wrote: > Checks for data direction in attempt_merge() and blk_rq_merge_ok() > are redundant and will always succeed when the both I/O request > operations are equal. Therefore, remove them. > > Signed-off-by: Dmitry Fomichev <dmitry.fomichev@xxxxxxx> > --- > block/blk-merge.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/block/blk-merge.c b/block/blk-merge.c > index d783bdc4559b..796451aed7d6 100644 > --- a/block/blk-merge.c > +++ b/block/blk-merge.c > @@ -745,8 +745,7 @@ static struct request *attempt_merge(struct request_queue *q, > if (req_op(req) != req_op(next)) > return NULL; > > - if (rq_data_dir(req) != rq_data_dir(next) > - || req->rq_disk != next->rq_disk) > + if (req->rq_disk != next->rq_disk) > return NULL; > > if (req_op(req) == REQ_OP_WRITE_SAME && > @@ -868,10 +867,6 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio) > if (req_op(rq) != bio_op(bio)) > return false; > > - /* different data direction or already started, don't merge */ > - if (bio_data_dir(bio) != rq_data_dir(rq)) > - return false; > - > /* must be same device */ > if (rq->rq_disk != bio->bi_disk) > return false; > Reviewed-by: Damien Le Moal <damien.lemoal@xxxxxxx> -- Damien Le Moal Western Digital Research