From: David Sterba Date: Mon, 22 Aug 2016 14:31:11 +0000 (+0200) Subject: btrfs-progs: mkfs: do not scan partially initialized devices X-Git-Tag: upstream/4.16.1~1391 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=974cfeeebb42b4911737876241c13dd12685b412;p=platform%2Fupstream%2Fbtrfs-progs.git btrfs-progs: mkfs: do not scan partially initialized devices We call scan ioctl on the devices too early, when most of the filesystem structures are not yet created. Move the registration to the end, after the filesystem gets closed. Signed-off-by: David Sterba --- diff --git a/mkfs.c b/mkfs.c index 1f209b5..0b081dd 100644 --- a/mkfs.c +++ b/mkfs.c @@ -1748,9 +1748,6 @@ int main(int argc, char **argv) exit(1); } - if (is_block_device(file) == 1) - btrfs_register_one_device(file); - if (dev_cnt == 0) goto raid_groups; @@ -1796,9 +1793,6 @@ int main(int argc, char **argv) printf("adding device %s id %llu\n", file, (unsigned long long)device->devid); } - - if (is_block_device(file) == 1) - btrfs_register_one_device(file); } raid_groups: @@ -1867,6 +1861,15 @@ raid_groups: out: ret = close_ctree(root); BUG_ON(ret); + + optind = saved_optind; + dev_cnt = argc - optind; + while (dev_cnt-- > 0) { + file = argv[optind++]; + if (is_block_device(file) == 1) + btrfs_register_one_device(file); + } + btrfs_close_all_devices(); free(label); return 0;