diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index ec5f0a1794e92662e2f506999659ea52bcb35702..badf02d8e84853cdd53f1ff832b2ff4764a93043 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -2941,10 +2941,6 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr, sector_t chunk_mask = conf->geo.chunk_mask; int page_idx = 0; - if (!mempool_initialized(&conf->r10buf_pool)) - if (init_resync(conf)) - return 0; - /* * Allow skipping a full rebuild for incremental assembly * of a clean array, like RAID1 does. @@ -2960,6 +2956,10 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr, return mddev->dev_sectors - sector_nr; } + if (!mempool_initialized(&conf->r10buf_pool)) + if (init_resync(conf)) + return 0; + skipped: max_sector = mddev->dev_sectors; if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ||