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>
This commit is contained in:
parent
dab54dcb04
commit
92dcdf7c01
4
Grow.c
4
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)
|
||||
|
|
Loading…
Reference in New Issue