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 - [email protected]
+
+- 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 <[email protected]>
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 <[email protected]>
Reviewed-by: NeilBrown <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to