Fix two IMSM bugs
- Disallow creating a second IMSM RAID array size 0 (bz880972) - Disallow creating IMSM RAIDs that spans multiple controllers (bz880974) Resolves bz880972, bz880974 Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
This commit is contained in:
parent
d631eadf39
commit
bbba7e024c
30
mdadm-3.2.6-Create.c-check-if-freesize-is-equal-0.patch
Normal file
30
mdadm-3.2.6-Create.c-check-if-freesize-is-equal-0.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From 066e92f017df22c879c455494d2c1743ef7f3aca Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lukasz Dorau <lukasz.dorau@intel.com>
|
||||||
|
Date: Fri, 16 Nov 2012 17:24:36 +0100
|
||||||
|
Subject: [PATCH] Create.c: check if freesize is equal 0
|
||||||
|
|
||||||
|
"freesize" can be equal 0, particularly after rounding to the chunk's size.
|
||||||
|
Creating should be aborted in such case.
|
||||||
|
|
||||||
|
Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
|
||||||
|
Signed-off-by: NeilBrown <neilb@suse.de>
|
||||||
|
---
|
||||||
|
Create.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Create.c b/Create.c
|
||||||
|
index afcf1a5..436bd1d 100644
|
||||||
|
--- a/Create.c
|
||||||
|
+++ b/Create.c
|
||||||
|
@@ -407,6 +407,11 @@
|
||||||
|
do_default_chunk = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ if (!freesize) {
|
||||||
|
+ fprintf(stderr, Name "no free space left on %s\n", dname);
|
||||||
|
+ fail = 1;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (size && freesize < size) {
|
||||||
|
fprintf(stderr, Name ": %s is smaller than given size."
|
@ -0,0 +1,73 @@
|
|||||||
|
From 3c309c82699ae3bebc716dbd5abea079dd41184a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marcin Tomczak <marcin.tomczak@intel.com>
|
||||||
|
Date: Fri, 9 Nov 2012 15:46:36 +0100
|
||||||
|
Subject: [PATCH] imsm: Forbid spanning between multiple controllers.
|
||||||
|
|
||||||
|
Attaching disks to multiple controllers of the same type has been
|
||||||
|
allowed so far. Now spanning between multiple controllers is disallowed
|
||||||
|
at all by IMSM metadata.
|
||||||
|
|
||||||
|
Signed-off-by: Marcin Tomczak <marcin.tomczak@intel.com>
|
||||||
|
Reviewed-by: Lukasz Dorau <lukasz.dorau@intel.com>
|
||||||
|
Signed-off-by: NeilBrown <neilb@suse.de>
|
||||||
|
---
|
||||||
|
super-intel.c | 25 ++++++++-----------------
|
||||||
|
1 file changed, 8 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/super-intel.c b/super-intel.c
|
||||||
|
index 202b83f..4ac9d42 100644
|
||||||
|
--- a/super-intel.c
|
||||||
|
+++ b/super-intel.c
|
||||||
|
@@ -558,20 +558,11 @@ static int attach_hba_to_super(struct intel_super *super, struct sys_dev *device
|
||||||
|
if (super->hba == NULL) {
|
||||||
|
super->hba = alloc_intel_hba(device);
|
||||||
|
return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- hba = super->hba;
|
||||||
|
- /* Intel metadata allows for all disks attached to the same type HBA.
|
||||||
|
- * Do not sypport odf HBA types mixing
|
||||||
|
- */
|
||||||
|
- if (device->type != hba->type)
|
||||||
|
+ } else
|
||||||
|
+ /* IMSM metadata disallows to attach disks to multiple
|
||||||
|
+ * controllers.
|
||||||
|
+ */
|
||||||
|
return 2;
|
||||||
|
-
|
||||||
|
- while (hba->next)
|
||||||
|
- hba = hba->next;
|
||||||
|
-
|
||||||
|
- hba->next = alloc_intel_hba(device);
|
||||||
|
- return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct sys_dev* find_disk_attached_hba(int fd, const char *devname)
|
||||||
|
@@ -3073,11 +3064,11 @@ static int compare_super_imsm(struct supertype *st, struct supertype *tst)
|
||||||
|
*/
|
||||||
|
if (!check_env("IMSM_NO_PLATFORM")) {
|
||||||
|
- if (!first->hba || !sec->hba ||
|
||||||
|
- (first->hba->type != sec->hba->type)) {
|
||||||
|
+ if (first->hba && sec->hba &&
|
||||||
|
+ strcmp(first->hba->path, sec->hba->path) != 0) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"HBAs of devices does not match %s != %s\n",
|
||||||
|
- first->hba ? get_sys_dev_type(first->hba->type) : NULL,
|
||||||
|
- sec->hba ? get_sys_dev_type(sec->hba->type) : NULL);
|
||||||
|
+ first->hba ? first->hba->path : NULL,
|
||||||
|
+ sec->hba ? sec->hba->path : NULL);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -3819,7 +3810,7 @@ static int find_intel_hba_capability(int fd, struct intel_super *super, char *de
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, ").\n"
|
||||||
|
- " Mixing devices attached to different controllers "
|
||||||
|
+ " Mixing devices attached to multiple controllers "
|
||||||
|
"is not allowed.\n");
|
||||||
|
}
|
||||||
|
free_sys_dev(&hba_name);
|
||||||
|
--
|
||||||
|
1.7.11.7
|
||||||
|
|
12
mdadm.spec
12
mdadm.spec
@ -1,7 +1,7 @@
|
|||||||
Summary: The mdadm program controls Linux md devices (software RAID arrays)
|
Summary: The mdadm program controls Linux md devices (software RAID arrays)
|
||||||
Name: mdadm
|
Name: mdadm
|
||||||
Version: 3.2.6
|
Version: 3.2.6
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Source: http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tar.xz
|
Source: http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tar.xz
|
||||||
Source1: mdmonitor.init
|
Source1: mdmonitor.init
|
||||||
Source2: raid-check
|
Source2: raid-check
|
||||||
@ -13,6 +13,8 @@ Source7: mdmonitor-takeover.service
|
|||||||
Source8: mdadm.conf
|
Source8: mdadm.conf
|
||||||
Source9: mdadm_event.conf
|
Source9: mdadm_event.conf
|
||||||
Patch0: mdadm-3.2.6-cgroup.patch
|
Patch0: mdadm-3.2.6-cgroup.patch
|
||||||
|
Patch1: mdadm-3.2.6-Create.c-check-if-freesize-is-equal-0.patch
|
||||||
|
Patch2: mdadm-3.2.6-imsm-Forbid-spanning-between-multiple-controllers.patch
|
||||||
# Fedora customization patches
|
# Fedora customization patches
|
||||||
Patch97: mdadm-3.2.6-udev.patch
|
Patch97: mdadm-3.2.6-udev.patch
|
||||||
Patch98: mdadm-2.5.2-static.patch
|
Patch98: mdadm-2.5.2-static.patch
|
||||||
@ -60,6 +62,9 @@ is not used as the system init process.
|
|||||||
%patch0 -p1 -b .cgroup
|
%patch0 -p1 -b .cgroup
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%patch1 -p1 -b .raidsize
|
||||||
|
%patch2 -p1 -b .multictrl
|
||||||
|
|
||||||
# Fedora customization patches
|
# Fedora customization patches
|
||||||
%patch97 -p1 -b .udev
|
%patch97 -p1 -b .udev
|
||||||
%patch98 -p1 -b .static
|
%patch98 -p1 -b .static
|
||||||
@ -140,6 +145,11 @@ rm -rf %{buildroot}
|
|||||||
%{_initrddir}/*
|
%{_initrddir}/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Nov 30 2012 Jes Sorensen <Jes.Sorensen@redhat.com> - 3.2.6-3
|
||||||
|
- Disallow creating a second IMSM RAID array size 0 (bz880972)
|
||||||
|
- Disallow creating IMSM RAIDs that spans multiple controllers (bz880974)
|
||||||
|
- Resolves bz880972, bz880974
|
||||||
|
|
||||||
* Thu Nov 15 2012 Doug Ledford <dledford@redhat.com> - 3.2.6-2
|
* Thu Nov 15 2012 Doug Ledford <dledford@redhat.com> - 3.2.6-2
|
||||||
- Modify mdadm to set the cgroup of mdmon to systemd if it's available
|
- Modify mdadm to set the cgroup of mdmon to systemd if it's available
|
||||||
- Related bz873576 (and others)
|
- Related bz873576 (and others)
|
||||||
|
Loading…
Reference in New Issue
Block a user