Skip to content

Commit 04cb45b

Browse files
committed
Merge branch 'md-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into block-5.19
Pull MD fixes from Song. * 'md-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md: md/raid5-ppl: Fix argument order in bio_alloc_bioset() Revert "md: don't unregister sync_thread with reconfig_mutex held"
2 parents 2396e95 + f34fdcd commit 04cb45b

File tree

4 files changed

+9
-13
lines changed

4 files changed

+9
-13
lines changed

drivers/md/dm-raid.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3725,7 +3725,7 @@ static int raid_message(struct dm_target *ti, unsigned int argc, char **argv,
37253725
if (!strcasecmp(argv[0], "idle") || !strcasecmp(argv[0], "frozen")) {
37263726
if (mddev->sync_thread) {
37273727
set_bit(MD_RECOVERY_INTR, &mddev->recovery);
3728-
md_reap_sync_thread(mddev, false);
3728+
md_reap_sync_thread(mddev);
37293729
}
37303730
} else if (decipher_sync_action(mddev, mddev->recovery) != st_idle)
37313731
return -EBUSY;

drivers/md/md.c

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4831,7 +4831,7 @@ action_store(struct mddev *mddev, const char *page, size_t len)
48314831
flush_workqueue(md_misc_wq);
48324832
if (mddev->sync_thread) {
48334833
set_bit(MD_RECOVERY_INTR, &mddev->recovery);
4834-
md_reap_sync_thread(mddev, true);
4834+
md_reap_sync_thread(mddev);
48354835
}
48364836
mddev_unlock(mddev);
48374837
}
@@ -6197,7 +6197,7 @@ static void __md_stop_writes(struct mddev *mddev)
61976197
flush_workqueue(md_misc_wq);
61986198
if (mddev->sync_thread) {
61996199
set_bit(MD_RECOVERY_INTR, &mddev->recovery);
6200-
md_reap_sync_thread(mddev, true);
6200+
md_reap_sync_thread(mddev);
62016201
}
62026202

62036203
del_timer_sync(&mddev->safemode_timer);
@@ -9303,7 +9303,7 @@ void md_check_recovery(struct mddev *mddev)
93039303
* ->spare_active and clear saved_raid_disk
93049304
*/
93059305
set_bit(MD_RECOVERY_INTR, &mddev->recovery);
9306-
md_reap_sync_thread(mddev, true);
9306+
md_reap_sync_thread(mddev);
93079307
clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery);
93089308
clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
93099309
clear_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags);
@@ -9338,7 +9338,7 @@ void md_check_recovery(struct mddev *mddev)
93389338
goto unlock;
93399339
}
93409340
if (mddev->sync_thread) {
9341-
md_reap_sync_thread(mddev, true);
9341+
md_reap_sync_thread(mddev);
93429342
goto unlock;
93439343
}
93449344
/* Set RUNNING before clearing NEEDED to avoid
@@ -9411,18 +9411,14 @@ void md_check_recovery(struct mddev *mddev)
94119411
}
94129412
EXPORT_SYMBOL(md_check_recovery);
94139413

9414-
void md_reap_sync_thread(struct mddev *mddev, bool reconfig_mutex_held)
9414+
void md_reap_sync_thread(struct mddev *mddev)
94159415
{
94169416
struct md_rdev *rdev;
94179417
sector_t old_dev_sectors = mddev->dev_sectors;
94189418
bool is_reshaped = false;
94199419

9420-
if (reconfig_mutex_held)
9421-
mddev_unlock(mddev);
94229420
/* resync has finished, collect result */
94239421
md_unregister_thread(&mddev->sync_thread);
9424-
if (reconfig_mutex_held)
9425-
mddev_lock_nointr(mddev);
94269422
if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) &&
94279423
!test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) &&
94289424
mddev->degraded != mddev->raid_disks) {

drivers/md/md.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -719,7 +719,7 @@ extern struct md_thread *md_register_thread(
719719
extern void md_unregister_thread(struct md_thread **threadp);
720720
extern void md_wakeup_thread(struct md_thread *thread);
721721
extern void md_check_recovery(struct mddev *mddev);
722-
extern void md_reap_sync_thread(struct mddev *mddev, bool reconfig_mutex_held);
722+
extern void md_reap_sync_thread(struct mddev *mddev);
723723
extern int mddev_init_writes_pending(struct mddev *mddev);
724724
extern bool md_write_start(struct mddev *mddev, struct bio *bi);
725725
extern void md_write_inc(struct mddev *mddev, struct bio *bi);

drivers/md/raid5-ppl.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -629,9 +629,9 @@ static void ppl_do_flush(struct ppl_io_unit *io)
629629
if (bdev) {
630630
struct bio *bio;
631631

632-
bio = bio_alloc_bioset(bdev, 0, GFP_NOIO,
632+
bio = bio_alloc_bioset(bdev, 0,
633633
REQ_OP_WRITE | REQ_PREFLUSH,
634-
&ppl_conf->flush_bs);
634+
GFP_NOIO, &ppl_conf->flush_bs);
635635
bio->bi_private = io;
636636
bio->bi_end_io = ppl_flush_endio;
637637

0 commit comments

Comments
 (0)