btrfs-progs: restore: check if specified root is fs/file tree firstly

Steps to reproduce:
 # mkfs.btrfs -f /dev/sda9
 # mount /dev/sda9 /mnt
 # dd if=/dev/zero of=/mnt/data bs=1M count=1
 # btrfs restore -r /dev/sda9 -r 2 -o /tmp

If users don't input a valid fs/file root objectid, btrfs restore still
continue and don't restore anything, this is unfriendly, we could
check it firstly.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
Wang Shilong 2014-06-19 09:27:05 +08:00 committed by David Sterba
parent 6d6f2d097e
commit d46111425a
1 changed files with 5 additions and 0 deletions

View File

@ -1186,6 +1186,11 @@ int cmd_restore(int argc, char **argv)
break;
case 'r':
root_objectid = arg_strtou64(optarg);
if (!is_fstree(root_objectid)) {
fprintf(stderr, "objectid %llu is not a valid fs/file tree\n",
root_objectid);
exit(1);
}
break;
case 'l':
list_roots = 1;