[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [PATCH 1/2] Only pass --update=super-minor when activating v0 metadata md arrays.
- From: David Cantrell <dcantrell redhat com>
- To: Discussion of Development and Customization of the Red Hat Linux Installer <anaconda-devel-list redhat com>
- Subject: Re: [PATCH 1/2] Only pass --update=super-minor when activating v0 metadata md arrays.
- Date: Wed, 16 Mar 2011 09:08:32 -1000
Ack.
David Lehman <dlehman redhat com> wrote:
> To minimize behavioral changes from 6.0 to 6.1 we track existing arrays'
> metadata version so we know which ones can take --update=super-minor. In
> Fedora we are discontinuing use of --update=super-minor.
>
> Resolves: rhbz#681136
> ---
> storage/devices.py | 25 ++++++++++++++++---------
> storage/devicetree.py | 2 ++
> 2 files changed, 18 insertions(+), 9 deletions(-)
>
> diff --git a/storage/devices.py b/storage/devices.py
> index d21172b..7e4c56a 100644
> --- a/storage/devices.py
> +++ b/storage/devices.py
> @@ -2540,7 +2540,7 @@ class MDRaidArrayDevice(StorageDevice):
>
> def __init__(self, name, level=None, major=None, minor=None, size=None,
> memberDevices=None, totalDevices=None,
> - uuid=None, format=None, exists=None,
> + uuid=None, format=None, exists=None, metadataVersion=None,
> parents=None, sysfsPath=''):
> """ Create a MDRaidArrayDevice instance.
>
> @@ -2551,6 +2551,7 @@ class MDRaidArrayDevice(StorageDevice):
> Keyword Arguments:
>
> level -- the device's RAID level (a string, eg: '1' or 'raid1')
> + metadataVersion -- the version of the device's md metadata
> parents -- list of member devices (StorageDevice instances)
> size -- the device's size (units/format TBD)
> uuid -- the device's UUID
> @@ -2582,7 +2583,11 @@ class MDRaidArrayDevice(StorageDevice):
> self.chunkSize = 512.0 / 1024.0 # chunk size in MB
> self.superBlockSize = 2.0 # superblock size in MB
>
> - self.createMetadataVer = "1.1"
> + if not isinstance(metadataVersion, str):
> + self.metadataVersion = "1.1"
> + else:
> + self.metadataVersion = metadataVersion
> +
> # bitmaps are not meaningful on raid0 according to mdadm-3.0.3
> self.createBitmap = self.level != 0
>
> @@ -2667,9 +2672,12 @@ class MDRaidArrayDevice(StorageDevice):
> s = StorageDevice.__str__(self)
> s += (" level = %(level)s spares = %(spares)s\n"
> " members = %(memberDevices)s\n"
> - " total devices = %(totalDevices)s" %
> + " total devices = %(totalDevices)s"
> + " metadata version = %(metadataVersion)s" %
> {"level": self.level, "spares": self.spares,
> - "memberDevices": self.memberDevices, "totalDevices": self.totalDevices})
> + "memberDevices": self.memberDevices,
> + "totalDevices": self.totalDevices,
> + "metadataVersion": self.metadataVersion})
> return s
>
> @property
> @@ -2677,7 +2685,8 @@ class MDRaidArrayDevice(StorageDevice):
> d = super(MDRaidArrayDevice, self).dict
> d.update({"level": self.level,
> "spares": self.spares, "memberDevices": self.memberDevices,
> - "totalDevices": self.totalDevices})
> + "totalDevices": self.totalDevices,
> + "metadataVersion": self.metadataVersion})
> return d
>
> def writeKS(self, f, preexisting=False, noformat=False, s=None):
> @@ -2905,9 +2914,7 @@ class MDRaidArrayDevice(StorageDevice):
> member.setup(orig=orig)
> disks.append(member.path)
>
> - update_super_minor = True
> - if self.type == "mdcontainer" or self.type == "mdbiosraidarray":
> - update_super_minor = False
> + update_super_minor = self.metadataVersion in ("0", "0.90")
>
> mdraid.mdactivate(self.path,
> members=disks,
> @@ -2963,7 +2970,7 @@ class MDRaidArrayDevice(StorageDevice):
> if getattr(self.format, "mountpoint", None) == bootmountpoint or \
> getattr(self.format, "mountpoint", None) == "/boot/efi" or \
> self.format.type == "prepboot":
> - self.createMetadataVer = "1.0"
> + self.metadataVersion = "1.0"
>
> # Bitmaps are not useful for swap and small partitions
> if self.size < 1000 or self.format.type == "swap":
> diff --git a/storage/devicetree.py b/storage/devicetree.py
> index c9f84cb..63e8b8b 100644
> --- a/storage/devicetree.py
> +++ b/storage/devicetree.py
> @@ -1660,6 +1660,7 @@ class DeviceTree(object):
> # try to name the array based on the preferred minor
> md_info = devicelibs.mdraid.mdexamine(device.path)
> md_path = md_info.get("device", "")
> + md_metadata = md_info.get("metadata")
> md_name = devicePathToName(md_info.get("device", ""))
> if md_name:
> try:
> @@ -1695,6 +1696,7 @@ class DeviceTree(object):
> minor=minor,
> memberDevices=md_devices,
> uuid=md_uuid,
> + metadataVersion=md_metadata,
> sysfsPath=sysfs_path,
> exists=True)
> md_array._addDevice(device)
> --
> 1.7.3.5
>
> _______________________________________________
> Anaconda-devel-list mailing list
> Anaconda-devel-list redhat com
> https://www.redhat.com/mailman/listinfo/anaconda-devel-list
--
David Cantrell <dcantrell redhat com>
Supervisor, Installer Engineering Team
Red Hat, Inc. | Honolulu, HI | UTC-10
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]