]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
md: bypass block throttle for superblock update
authorJunxiao Bi <junxiao.bi@oracle.com>
Wed, 8 Nov 2023 18:22:15 +0000 (10:22 -0800)
committerSong Liu <song@kernel.org>
Mon, 27 Nov 2023 23:46:16 +0000 (15:46 -0800)
commit 5e2cf333b7bd ("md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d")
introduced a hung bug and will be reverted in next patch, since the issue
that commit is fixing is due to md superblock write is throttled by wbt,
to fix it, we can have superblock write bypass block layer throttle.

Fixes: 5e2cf333b7bd ("md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d")
Cc: stable@vger.kernel.org # v5.19+
Suggested-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/20231108182216.73611-1-junxiao.bi@oracle.com
drivers/md/md.c

index c94373d64f2cd4cbbdb8d49591d23b8f129aa46c..466bbcb4e230e7504cf8779e6a0c05d06f6b49a2 100644 (file)
@@ -1013,9 +1013,10 @@ void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
                return;
 
        bio = bio_alloc_bioset(rdev->meta_bdev ? rdev->meta_bdev : rdev->bdev,
-                              1,
-                              REQ_OP_WRITE | REQ_SYNC | REQ_PREFLUSH | REQ_FUA,
-                              GFP_NOIO, &mddev->sync_set);
+                             1,
+                             REQ_OP_WRITE | REQ_SYNC | REQ_IDLE | REQ_META
+                                 | REQ_PREFLUSH | REQ_FUA,
+                             GFP_NOIO, &mddev->sync_set);
 
        atomic_inc(&rdev->nr_pending);