On 04/13/2013 12:06 AM, David Sterba wrote:
On Fri, Apr 05, 2013 at 01:54:57PM +0800, Anand Jain wrote:
In the cases where one of the disk is not suitable for
btrfs, then we would fail the mkfs, however we determine
that after we have written btrfs to the preceding disks.
At this time if user changes mind for not to use btrfs
will left with no choice.
So this patch will check if all the provided disks are
suitable for the btrfs at once before proceeding to
create btrfs on a disk.
Good fix and cleanup.
+void __test_dev_for_mkfs(char *file, int force_overwrite)
+{
+ int ret, fd;
+
+ ret = is_swap_device(file);
+ if (ret < 0) {
+ fprintf(stderr, "error checking %s status: %s\n", file,
+ strerror(-ret));
+ exit(1);
The exit()s were ok when this code was in main(), but should be
converted to return for a helper function.
I got this integrated in v2.
+ }
int main(int ac, char **av)
{
char *file;
@@ -1378,6 +1418,8 @@ int main(int ac, char **av)
char *pretty_buf;
struct btrfs_super_block *super;
u64 flags;
+ int dev_cnt=0;
int dev_cnt = 0;
+ int saved_optind;
while(1) {
int c;
+ dev_cnt = ac - optind;
+ if (dev_cnt == 0)
print_usage();
+ if (source_dir_set && dev_cnt > 1) {
+ fprintf(stderr,
+ "The -r option is limited to a single device\n");
+ exit(1);
+ }
+ while (dev_cnt-- > 0) {
+ file = av[optind++];
+ /* following func would exit on error */
+ if (is_block_device(file))
+ __test_dev_for_mkfs(file, force_overwrite);
Catch errors here and exit() eventually.
+ }
+
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html