summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-11-06 13:38:43 +1100
committerNeilBrown <neilb@suse.de>2009-11-06 13:38:43 +1100
commit92dcdf7c01f142aec85deff9f002e59951952978 (patch)
treeaf1e8c5af64fd40b7a9fe1a2142ce25cb8e00478
parentdab54dcb049952be8fa7b1058a4557671c73be02 (diff)
downloadmdadm-92dcdf7c01f142aec85deff9f002e59951952978.tar.gz
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" <kueihuan.chen@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r--Grow.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Grow.c b/Grow.c
index f367041..deff0e0 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)