[PATCH 8/9] Add some checking to MDRaidArrayDevice._setSpares.
David Lehman
dlehman at redhat.com
Thu Mar 20 17:14:12 UTC 2014
---
blivet/devices.py | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/blivet/devices.py b/blivet/devices.py
index 9b4620e..c0136ff 100644
--- a/blivet/devices.py
+++ b/blivet/devices.py
@@ -3309,7 +3309,15 @@ class MDRaidArrayDevice(ContainerDevice):
return spares
def _setSpares(self, spares):
- # FIXME: this is too simple to be right
+ if self.level.name == "raid0":
+ raise DeviceError("cannot specify spares for raid0")
+
+ max_spares = self.level.get_max_spares(len(self.parents))
+ if spares > max_spares:
+ log.debug("failed to set new spares value %d (max is %d)",
+ spares, max_spares)
+ raise DeviceError("new spares value is too large")
+
if self.totalDevices > spares:
self.memberDevices = self.totalDevices - spares
--
1.8.5.3
More information about the anaconda-patches
mailing list