From: NeilBrown Date: Fri, 6 Nov 2009 02:38:43 +0000 (+1100) Subject: Grow: restore backup to proper location. X-Git-Tag: mdadm-3.1.1~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=92dcdf7c01f142aec85deff9f002e59951952978;p=thirdparty%2Fmdadm.git Grow: restore backup to proper location. The 'arraystart' is in sectors while restore_stripes requires bytes, so we need a conversion. Without this, backups get restored to the wrong offset. Reported-by: "KueiHuan Chen" Signed-off-by: NeilBrown --- diff --git a/Grow.c b/Grow.c index f3670419..deff0e0d 100644 --- a/Grow.c +++ b/Grow.c @@ -1719,7 +1719,7 @@ int Grow_restart(struct supertype *st, struct mdinfo *info, int *fdlist, int cnt info->new_level, info->new_layout, fd, __le64_to_cpu(bsb.devstart)*512, - __le64_to_cpu(bsb.arraystart), + __le64_to_cpu(bsb.arraystart)*512, __le64_to_cpu(bsb.length)*512)) { /* didn't succeed, so giveup */ if (verbose) @@ -1736,7 +1736,7 @@ int Grow_restart(struct supertype *st, struct mdinfo *info, int *fdlist, int cnt info->new_layout, fd, __le64_to_cpu(bsb.devstart)*512 + __le64_to_cpu(bsb.devstart2)*512, - __le64_to_cpu(bsb.arraystart2), + __le64_to_cpu(bsb.arraystart2)*512, __le64_to_cpu(bsb.length2)*512)) { /* didn't succeed, so giveup */ if (verbose)