On 19/11/2024 16:11, Christoph Hellwig wrote:
Because it already is encoded in the opcode.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
---
block/blk-merge.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/block/blk-merge.c b/block/blk-merge.c
index e0b28e9298c9..64860cbd5e27 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -864,9 +864,6 @@ 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))
- return NULL;
-
if (req->bio && next->bio) {
/* Don't merge requests with different write hints. */
if (req->bio->bi_write_hint != next->bio->bi_write_hint)
@@ -986,10 +983,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 */
I tried to check what is meant by "already started", but that comment
pre-dates git. And even the code from then does not make it obvious, but
I don't want to check further, so:
Reviewed-by: John Garry <john.g.garry@xxxxxxxxxx>
- if (bio_data_dir(bio) != rq_data_dir(rq))
- return false;
-
/* don't merge across cgroup boundaries */
if (!blk_cgroup_mergeable(rq, bio))
return false;