Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP3:GA
mdadm.5365
0223-Allow-level-migration-only-for-single-arra...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0223-Allow-level-migration-only-for-single-array-containe.patch of Package mdadm.5365
From ddab63c7debe8f5bf955ae5202abe5553736a1e1 Mon Sep 17 00:00:00 2001 From: Mariusz Dabrowski <mariusz.dabrowski@intel.com> Date: Wed, 12 Oct 2016 14:29:42 +0200 Subject: [PATCH 313/359] Allow level migration only for single-array container References: bsc#1081910 IMSM doesn't allow to change RAID level of array in container with two arrays but array count check is being done too late (after removing disks) and in some cases (e. g. RAID 0 and RAID 1 migrated to RAID 0) both arrays become degraded. This patch adds array count check before disks are being removed. Signed-off-by: Mariusz Dabrowski <mariusz.dabrowski@intel.com> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Coly Li <colyli@suse.de> --- Grow.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Grow.c b/Grow.c index 628f0e7..a8f6243 100755 --- a/Grow.c +++ b/Grow.c @@ -777,6 +777,26 @@ int remove_disks_for_takeover(struct supertype *st, struct mdinfo *remaining; int slot; + if (st->ss->external) { + int rv = 0; + struct mdinfo *arrays = st->ss->container_content(st, NULL); + /* + * containter_content returns list of arrays in container + * If arrays->next is not NULL it means that there are + * 2 arrays in container and operation should be blocked + */ + if (arrays) { + if (arrays->next) + rv = 1; + sysfs_free(arrays); + if (rv) { + pr_err("Error. Cannot perform operation on /dev/%s\n", st->devnm); + pr_err("For this operation it MUST be single array in container\n"); + return rv; + } + } + } + if (sra->array.level == 10) nr_of_copies = layout & 0xff; else if (sra->array.level == 1) -- 2.16.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor