Blob Blame History Raw
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;