Hello community, here is the log from the commit of package dmraid for openSUSE:Factory checked in at Thu Sep 22 10:41:57 CEST 2011. -------- --- dmraid/dmraid.changes 2011-05-27 11:30:29.000000000 +0200 +++ /mounts/work_src_done/STABLE/dmraid/dmraid.changes 2011-09-22 01:59:06.000000000 +0200 @@ -1,0 +2,9 @@ +Wed Sep 21 23:57:12 UTC 2011 - nfbrown@suse.com + +- rebuild.fix: When a rebuild is requested that + cannot be handled, report and error instead of + crashing (bnc#716904) +- ddf-erase: Allow dmraid to erase ddf metadata + properly (bnc#712671) + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- ddf-erase rebuild.fix ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dmraid.spec ++++++ --- /var/tmp/diff_new_pack.MoiKdY/_old 2011-09-22 10:41:53.000000000 +0200 +++ /var/tmp/diff_new_pack.MoiKdY/_new 2011-09-22 10:41:53.000000000 +0200 @@ -40,6 +40,8 @@ Patch3: lib-install.patch Patch4: handle_spaces Patch5: remove_trylock +Patch6: rebuild.fix +Patch7: ddf-erase BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: %fillup_prereq @@ -76,6 +78,8 @@ %patch3 -p1 %patch4 -p1 %patch5 -p2 +%patch6 -p1 +%patch7 -p1 cp %{SOURCE3} . %build ++++++ ddf-erase ++++++ Allow dmraid to erase ddf metadata properly. 2 things go wrong: 1/ when seeking to the anchor, it seeks to far by a factor of 512 2/ when writing to the anchor, it writes 0 bytes, not 512. Signed-off-by: NeilBrown <neilb@suse.de> References: bnc#712671 --- lib/format/ddf/ddf1.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- 1.0.0.rc16.orig/lib/format/ddf/ddf1.c +++ 1.0.0.rc16/lib/format/ddf/ddf1.c @@ -536,7 +536,7 @@ try_to_find_ddf1(struct lib_context *lc, ddf1_sboffset) || !is_ddf1(lc, di, ddf1)) goto bad; - ddf1->anchor_offset = ddf1_sboffset; + ddf1->anchor_offset = ddf1_sboffset / 512; /* Convert endianness */ ddf1->in_cpu_format = 0; @@ -967,6 +967,7 @@ setup_rd(struct lib_context *lc, struct ma[i].offset = ddf1->primary->primary_table_lba; ma->offset = ddf1->anchor_offset; + ma->size = 512; (ma++)->area = &ddf1->anchor; (ma++)->area = ddf1->primary; ++++++ rebuild.fix ++++++ Only imsm arrays can be rebuild by dmraid Others cause a segfault. Fix that so they print a more helpful error messages. From: Leonardo Chiquitto <lchiquitto@suse.com> Reviewed-by: NeilBrown <neilb@suse.de> References: bnc#716904 --- lib/metadata/reconfig.c | 5 +++++ 1 file changed, 5 insertions(+) --- 1.0.0.rc16.orig/lib/metadata/reconfig.c +++ 1.0.0.rc16/lib/metadata/reconfig.c @@ -552,6 +552,11 @@ _rebuild_raidset(struct lib_context *lc, int driveRebuild = 1; rs = find_group(lc, sub_rs); + if (!rs) { + log_print(lc, "Rebuild: array \"%s\" cannot be rebuilt by dmraid.\n", + set_name); + return 1; + } /* raid 0 cannot be rebuild - exit */ if (T_RAID0(sub_rs) && (!SETS(sub_rs))) { ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org