I'm pretty sure this won't work. Linuxrc.s390 sets those DASD sysfs attributes (previously with RHEL5 it was loader by means of the dasd_mod driver module parameter dasd=) and to my knowledge there is no other code in anaconda that ever modifies those values. Hence the code below compares the value that has already been set with the exact same value which has not been modified meanwhile. Only linuxrc.s390 (or whoever is the first to write to those sysfs attributes) is able to read the driver default values before overwriting them. That's why the correct solution for the current design would have to remember either the default value or--even better--just the overridden attributes for each DASD in linuxrc.s390 and pass it on to anaconda probably by means of a file (as with /tmp/s390net). See also our previous discussion on default values for DASD sysfs attributes: https://www.redhat.com/archives/anaconda-devel-list/2009-October/msg00274.html On 06/25/2010 02:00 AM, David Cantrell wrote: > Only include option values in the rd_DASD parameter if the user has > changed the value. This should reduce the amount of data written to > zipl.conf by a reasonable amount, which should keep most use cases from > exceeding the boot parameter length limit. > --- > storage/devices.py | 5 ++++- > storage/devicetree.py | 2 ++ > 2 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/storage/devices.py b/storage/devices.py > index 0f6e892..fac0452 100644 > --- a/storage/devices.py > +++ b/storage/devices.py > @@ -3555,6 +3555,7 @@ class DASDDevice(DiskDevice): > def __init__(self, device, **kwargs): > self.busid = kwargs.pop('busid') > self.opts = kwargs.pop('opts') > + self.origopts = kwargs.pop('origopts') > self.dasd = kwargs.pop('dasd') > DiskDevice.__init__(self, device, **kwargs) > > @@ -3562,7 +3563,9 @@ class DASDDevice(DiskDevice): > self.dasd.addDASD(self) > > def getOpts(self): > - return map(lambda (k, v): "%s=%s" % (k, v,), self.opts.items()) > + return map(lambda (k, v): "%s=%s" % (k, v,), > + filter(lambda (k, v): v != self.origopts[k], > + self.opts.items()) > > def dracutSetupString(self): > args = ["rd_DASD=%s" % (self.busid,)] + self.getOpts() > diff --git a/storage/devicetree.py b/storage/devicetree.py > index 6a167e9..7228768 100644 > --- a/storage/devicetree.py > +++ b/storage/devicetree.py > @@ -1191,9 +1191,11 @@ class DeviceTree(object): > kwargs["dasd"] = self.dasd > kwargs["busid"] = udev_device_get_dasd_bus_id(info) > kwargs["opts"] = {} > + kwargs["origopts"] = {} > > for attr in ['readonly', 'use_diag', 'erplog', 'failfast']: > kwargs["opts"][attr] = udev_device_get_dasd_flag(info, attr) > + kwargs["origopts"][attr] = udev_device_get_dasd_flag(info, attr) > > log.debug("%s is a dasd device" % name) > elif udev_device_is_zfcp(info): Steffen Linux on System z Development IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list