Source
7396
7396
7397
7397
if (conf->reshape_progress != MaxSector) {
7398
7398
conf->reshape_safe = conf->reshape_progress;
7399
7399
atomic_set(&conf->reshape_stripes, 0);
7400
7400
clear_bit(MD_RECOVERY_SYNC, &mddev->recovery);
7401
7401
clear_bit(MD_RECOVERY_CHECK, &mddev->recovery);
7402
7402
set_bit(MD_RECOVERY_RESHAPE, &mddev->recovery);
7403
7403
set_bit(MD_RECOVERY_RUNNING, &mddev->recovery);
7404
7404
mddev->sync_thread = md_register_thread(md_do_sync, mddev,
7405
7405
"reshape");
7406
+
if (!mddev->sync_thread)
7407
+
goto abort;
7406
7408
}
7407
7409
7408
7410
/* Ok, everything is just fine now */
7409
7411
if (mddev->to_remove == &raid5_attrs_group)
7410
7412
mddev->to_remove = NULL;
7411
7413
else if (mddev->kobj.sd &&
7412
7414
sysfs_create_group(&mddev->kobj, &raid5_attrs_group))
7413
7415
pr_warn("raid5: failed to create sysfs attributes for %s\n",
7414
7416
mdname(mddev));
7415
7417
md_set_array_sectors(mddev, raid5_size(mddev, 0, 0));