]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Feb 2024 08:25:18 +0000 (09:25 +0100)
[ Upstream commit d6e035aad6c09991da1c667fb83419329a3baed8 ]

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
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/md/md.c

index dccf270aa1b4b4369fb763cec9999fd819c70a01..108590041db64d15dfc427aa1b401136dd6f1c89 100644 (file)
@@ -940,9 +940,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);