On 8/31/25 8:32 PM, Yu Kuai wrote:
From: Yu Kuai <yukuai3@xxxxxxxxxx>
Unify bio split code, prepare to fix disordered split IO.
Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx>
---
drivers/md/md-linear.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/drivers/md/md-linear.c b/drivers/md/md-linear.c
index 59d7963c7843..701e3aac0a21 100644
--- a/drivers/md/md-linear.c
+++ b/drivers/md/md-linear.c
@@ -256,19 +256,11 @@ static bool linear_make_request(struct mddev *mddev, struct bio *bio)
if (unlikely(bio_end_sector(bio) > end_sector)) {
/* This bio crosses a device boundary, so we have to split it */
- struct bio *split = bio_split(bio, end_sector - bio_sector,
+ bio = bio_submit_split_bioset(bio, end_sector - bio_sector,
GFP_NOIO, &mddev->bio_set);
This patch cannot have been tested because it triggers the following
build error:
drivers/md/md-linear.c: In function ‘linear_make_request’:
./include/linux/gfp_types.h:381:25: error: passing argument 3 of ‘bio_submit_split_bioset’ makes pointer from integer without a cast [-Wint-conversion]
381 | #define GFP_NOIO (__GFP_RECLAIM)
| ^~~~~~~~~~~~~~~
| |
| unsigned int
Bart.
.