[dm-devel] dmraid/lib/format/ddf ddf1.c ddf1_dump.c
heinzm at sourceware.org
heinzm at sourceware.org
Wed Aug 24 14:28:47 UTC 2011
CVSROOT: /cvs/dm
Module name: dmraid
Changes by: heinzm at sourceware.org 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"));
}
More information about the dm-devel
mailing list