Hello community, here is the log from the commit of package mdadm checked in at Fri Nov 7 15:23:58 CET 2008. -------- --- mdadm/mdadm.changes 2008-11-07 10:32:50.000000000 +0100 +++ /mounts/work_src_done/STABLE/mdadm/mdadm.changes 2008-11-07 12:35:26.341122000 +0100 @@ -1,0 +2,12 @@ +Fri Nov 7 12:34:30 CET 2008 - nfbrown@suse.de + +- mdadm-auto-assemble.patch - fix various bugs in + auto-assemble +- start-kpartx-for-imsm-devices.patch - IMSM devices + need to be partitioned, and may programs including + YaST don't understand partitioned md devices, + so run kpartx to create 'dm' based partitions which + have a better chance for being understood + This relates to FATE#304220 + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- mdadm-auto-assemble.patch Start-kpartx-for-imsm-devices.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mdadm.spec ++++++ --- /var/tmp/diff_new_pack.x23108/_old 2008-11-07 15:23:39.000000000 +0100 +++ /var/tmp/diff_new_pack.x23108/_new 2008-11-07 15:23:39.000000000 +0100 @@ -20,7 +20,7 @@ Name: mdadm Version: 3.0 -Release: 6 +Release: 7 %define ver 3.0-devel2 BuildRequires: sgmltool PreReq: %fillup_prereq %insserv_prereq @@ -36,6 +36,8 @@ Patch2: mdmon-ia64-clone.patch Patch3: mdadm-destdir.patch Patch4: mdadm-overflow.patch +Patch5: mdadm-auto-assemble.patch +Patch6: Start-kpartx-for-imsm-devices.patch Source1: Software-RAID.HOWTO.tar.bz2 Source2: sysconfig.mdadm Source3: mdadmd @@ -60,6 +62,8 @@ %patch2 %patch3 %patch4 +%patch5 +%patch6 %build %{suse_update_config -f} @@ -148,6 +152,15 @@ /lib/mkinitrd/scripts/boot-md.sh %changelog +* Fri Nov 07 2008 nfbrown@suse.de +- mdadm-auto-assemble.patch - fix various bugs in + auto-assemble +- start-kpartx-for-imsm-devices.patch - IMSM devices + need to be partitioned, and may programs including + YaST don't understand partitioned md devices, + so run kpartx to create 'dm' based partitions which + have a better chance for being understood + This relates to FATE#304220 * Fri Nov 07 2008 ro@suse.de - remove udev rule (conflicting with file in udev package) * Fri Nov 07 2008 ro@suse.de ++++++ mdadm-auto-assemble.patch ++++++ diff --git a/Assemble.c b/Assemble.c index c86a165..20c4be7 100644 --- a/Assemble.c +++ b/Assemble.c @@ -320,7 +320,7 @@ int Assemble(struct supertype *st, char *mddev, tmpdev->content = content->next; if (tmpdev->content == NULL) - tmpdev->used = 1; + tmpdev->used = 2; } else if (ident->container || ident->member) { /* No chance of this matching if we don't have @@ -396,12 +396,15 @@ int Assemble(struct supertype *st, char *mddev, * looking. If the chosen member is active, skip. */ if (is_member_busy(content->text_version)) { + if (report_missmatch) + fprintf(stderr, Name ": member %s in %s is already assembled\n", + content->text_version, + devname); + tst->ss->free_super(tst); + tst = NULL; + content = NULL; if (auto_assem) goto loop; - fprintf(stderr, Name ": member %s in %s is already assembled\n", - content->text_version, - devname); - tst->ss->free_super(tst); return 1; } st = tst; tst = NULL; @@ -1202,8 +1205,10 @@ int assemble_container_content(struct supertype *st, int mdfd, sra = sysfs_read(mdfd, 0, GET_VERSION); if (sra == NULL || strcmp(sra->text_version, content->text_version) != 0) - if (sysfs_set_array(content, md_get_version(mdfd)) != 0) + if (sysfs_set_array(content, md_get_version(mdfd)) != 0) { + close(mdfd); return 1; + } if (sra) sysfs_free(sra); @@ -1212,9 +1217,10 @@ int assemble_container_content(struct supertype *st, int mdfd, working++; else if (errno == EEXIST) preexist++; - if (working == 0) - /* Nothing new, don't try to start */ ; - else if (runstop > 0 || + if (working == 0) { + close(mdfd); + return 1;/* Nothing new, don't try to start */ + } else if (runstop > 0 || (working + preexist) >= content->array.working_disks) { map_update(&map, fd2devnum(mdfd), @@ -1246,15 +1252,18 @@ int assemble_container_content(struct supertype *st, int mdfd, fprintf(stderr, "\n"); } wait_for(chosen_name); + close(mdfd); + return 0; /* FIXME should have an O_EXCL and wait for read-auto */ - } else + } else { if (verbose >= 0) fprintf(stderr, Name ": %s assembled with %d devices but " "not started\n", chosen_name, working); - - return 0; + close(mdfd); + return 1; + } } #endif diff --git a/Create.c b/Create.c index da05eed..783ab09 100644 --- a/Create.c +++ b/Create.c @@ -780,11 +780,11 @@ int Create(struct supertype *st, char *mddev, ping_monitor(devnum2devname(st->container_dev)); close(container_fd); } + wait_for(chosen_name); } else { fprintf(stderr, Name ": not starting array - not enough devices.\n"); } close(mdfd); - wait_for(chosen_name); return 0; abort: diff --git a/Incremental.c b/Incremental.c index ff8aa9a..474f78d 100644 --- a/Incremental.c +++ b/Incremental.c @@ -829,7 +829,6 @@ int Incremental_container(struct supertype *st, char *devname, int verbose, err = assemble_container_content(st, mdfd, ra, runstop, chosen_name, verbose); - close(mdfd); if (err) return err; } ++++++ Start-kpartx-for-imsm-devices.patch ++++++
From 057fb70bf4e4b284cc06299853122273815b1d6e Mon Sep 17 00:00:00 2001 From: NeilBrown
Date: Fri, 7 Nov 2008 22:22:41 +1100 Subject: [PATCH] Start kpartx for imsm devices.
This probably wont get into mainline, but is need on SLES
to create partitions that the YaST partitioner has a chance
of recognising.
Signed-off-by: NeilBrown