Dump: get stat from a wrong metadata file when restoring metadata
The dumped metadata files are shown as below localhost:~ # ll -ih test/ total 16K 34565564 -rw-r--r-- 2 root root 1.0G Dec 14 21:15 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-0-0-3 34565563 -rw-r--r-- 2 root root 1.0G Dec 14 21:15 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-0-0-4 34565563 -rw-r--r-- 2 root root 1.0G Dec 14 21:15 sda 34565564 -rw-r--r-- 2 root root 1.0G Dec 14 21:15 sdb It reports such error when trying to restore metadata for /dev/sda localhost:~ # mdadm --restore=test /dev/sda mdadm: test/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-0-0-4 is not the same size as /dev/sda - cannot restore. It's because the stb value has been changed to other metadata file in the while statement. Signed-off-by: Lidong Zhong <lidong.zhong@suse.com> Signed-off-by: Jes Sorensen <jsorensen@fb.com>
This commit is contained in:
parent
69068584f9
commit
75562b57d4
5
Dump.c
5
Dump.c
|
@ -272,6 +272,11 @@ int Restore_metadata(char *dev, char *dir, struct context *c,
|
|||
fname);
|
||||
goto err;
|
||||
}
|
||||
if (stat(fname, &stb) != 0) {
|
||||
pr_err("Could not stat %s for --restore.\n",
|
||||
fname);
|
||||
goto err;
|
||||
}
|
||||
if (((unsigned long long)stb.st_size) != size) {
|
||||
pr_err("%s is not the same size as %s - cannot restore.\n",
|
||||
fname, dev);
|
||||
|
|
Loading…
Reference in New Issue