From: Heinz Mauelshagen Date: Mon, 14 Aug 2023 12:01:15 +0000 (+0200) Subject: md raid1: allow writebehind to work on any leg device set WriteMostly X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6b2460e66ce6d483b5ff77227ac799d6e8a9ebd6;p=linux.git md raid1: allow writebehind to work on any leg device set WriteMostly As the WriteMostly flag can be set on any component device of a RAID1 array, remove the constraint that it only works if set on the first one. Signed-off-by: Heinz Mauelshagen Tested-by: Xiao Ni Link: https://lore.kernel.org/r/2a9592bf3340f34bf588eec984b23ee219f3985e.1692013451.git.heinzm@redhat.com Signed-off-by: Song Liu --- diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 56f2725a996ff..4b30a17421623 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -1523,8 +1523,7 @@ static void raid1_write_request(struct mddev *mddev, struct bio *bio, * Not if there are too many, or cannot * allocate memory, or a reader on WriteMostly * is waiting for behind writes to flush */ - if (bitmap && - test_bit(WriteMostly, &rdev->flags) && + if (bitmap && write_behind && (atomic_read(&bitmap->behind_writes) < mddev->bitmap_info.max_write_behind) && !waitqueue_active(&bitmap->behind_wait)) {