Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0fbad0a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MD fixes from Shaohua Li:
 "Two small fixes for MD:

   - an error handling fix from me

   - a recover bug fix for raid10 from BingJing"

* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
  md/raid10: fix that replacement cannot complete recovery after reassemble
  MD: cleanup resources in failure
parents 8d2b6f6b bda31539
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -5547,7 +5547,8 @@ int md_run(struct mddev *mddev)
		else
			pr_warn("md: personality for level %s is not loaded!\n",
				mddev->clevel);
		return -EINVAL;
		err = -EINVAL;
		goto abort;
	}
	spin_unlock(&pers_lock);
	if (mddev->level != pers->level) {
@@ -5560,7 +5561,8 @@ int md_run(struct mddev *mddev)
	    pers->start_reshape == NULL) {
		/* This personality cannot handle reshaping... */
		module_put(pers->owner);
		return -EINVAL;
		err = -EINVAL;
		goto abort;
	}

	if (pers->sync_request) {
@@ -5629,7 +5631,7 @@ int md_run(struct mddev *mddev)
		mddev->private = NULL;
		module_put(pers->owner);
		bitmap_destroy(mddev);
		return err;
		goto abort;
	}
	if (mddev->queue) {
		bool nonrot = true;
+7 −0
Original line number Diff line number Diff line
@@ -3893,6 +3893,13 @@ static int raid10_run(struct mddev *mddev)
			    disk->rdev->saved_raid_disk < 0)
				conf->fullsync = 1;
		}

		if (disk->replacement &&
		    !test_bit(In_sync, &disk->replacement->flags) &&
		    disk->replacement->saved_raid_disk < 0) {
			conf->fullsync = 1;
		}

		disk->recovery_disabled = mddev->recovery_disabled - 1;
	}