diff options
| author | Li Nan <linan122@huawei.com> | 2026-01-05 14:02:49 +0300 |
|---|---|---|
| committer | Yu Kuai <yukuai@fnnas.com> | 2026-01-26 08:16:05 +0300 |
| commit | 090856dd8599edfc7699d1ad9bf8069b9745b313 (patch) | |
| tree | f01c5da74357f518391055cc4cf409369616f7fb | |
| parent | 4ffe28ed0d7ce7f2f72372cb13152ad37a43ff21 (diff) | |
| download | linux-090856dd8599edfc7699d1ad9bf8069b9745b313.tar.xz | |
md/raid1: simplify uptodate handling in end_sync_write
In end_sync_write, r1bio state is always set to either R1BIO_WriteError
or R1BIO_MadeGood. Consequently, put_sync_write_buf() never takes the
'else' branch that calls md_done_sync(), making the uptodate parameter
have no practical effect.
Pass 1 to put_sync_write_buf(). A more complete cleanup will be done in
a follow-up patch.
Link: https://lore.kernel.org/linux-raid/20260105110300.1442509-2-linan666@huaweicloud.com
Signed-off-by: Li Nan <linan122@huawei.com>
Reviewed-by: Yu Kuai <yukuai@fnnas.com>
Signed-off-by: Yu Kuai <yukuai@fnnas.com>
| -rw-r--r-- | drivers/md/raid1.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index f4c7004888af..3670abf46841 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -2080,13 +2080,12 @@ static void put_sync_write_buf(struct r1bio *r1_bio, int uptodate) static void end_sync_write(struct bio *bio) { - int uptodate = !bio->bi_status; struct r1bio *r1_bio = get_resync_r1bio(bio); struct mddev *mddev = r1_bio->mddev; struct r1conf *conf = mddev->private; struct md_rdev *rdev = conf->mirrors[find_bio_disk(r1_bio, bio)].rdev; - if (!uptodate) { + if (bio->bi_status) { abort_sync_write(mddev, r1_bio); set_bit(WriteErrorSeen, &rdev->flags); if (!test_and_set_bit(WantReplacement, &rdev->flags)) @@ -2099,7 +2098,7 @@ static void end_sync_write(struct bio *bio) set_bit(R1BIO_MadeGood, &r1_bio->state); } - put_sync_write_buf(r1_bio, uptodate); + put_sync_write_buf(r1_bio, 1); } static int r1_sync_page_io(struct md_rdev *rdev, sector_t sector, |
