CVSROOT: /cvs/dm Module name: dmraid Changes by: heinzm@xxxxxxxxxxxxxx 2011-08-24 14:28:47 Modified files: lib/format/ddf : ddf1.c ddf1_dump.c Log message: dmraid cannot erase ddf metadata. It tries to seek to an offset too big by a factor of 512, and then writes zero bytes to the anchor. ddf1- Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/dmraid/lib/format/ddf/ddf1.c.diff?cvsroot=dm&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/dmraid/lib/format/ddf/ddf1_dump.c.diff?cvsroot=dm&r1=1.3&r2=1.4 --- dmraid/lib/format/ddf/ddf1.c 2010/03/18 16:53:17 1.8 +++ dmraid/lib/format/ddf/ddf1.c 2011/08/24 14:28:46 1.9 @@ -526,7 +526,8 @@ ddf1_sboffset) || !is_ddf1(lc, di, ddf1)) goto bad; - ddf1->anchor_offset = ddf1_sboffset; + /* ddf1_sboffset is in bytes. */ + ddf1->anchor_offset = ddf1_sboffset >> 9; /* Convert endianness */ ddf1->in_cpu_format = 0; @@ -962,6 +963,7 @@ ma[i].offset = ddf1->primary->primary_table_lba; ma->offset = ddf1->anchor_offset; + ma->size = DDF1_BLKSIZE; (ma++)->area = &ddf1->anchor; (ma++)->area = ddf1->primary; --- dmraid/lib/format/ddf/ddf1_dump.c 2010/07/13 20:22:38 1.3 +++ dmraid/lib/format/ddf/ddf1_dump.c 2011/08/24 14:28:46 1.4 @@ -60,7 +60,7 @@ { log_print(lc, "%s (%s):", di->path, handler); log_print(lc, "DDF1 anchor at %llu with tables in %s-endian format.", - ddf1->anchor_offset / DDF1_BLKSIZE, + ddf1->anchor_offset, (ddf1->disk_format == LITTLE_ENDIAN ? "little" : "big")); } -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel