diff options
Diffstat (limited to 'cmd_device.c')
-rw-r--r-- | cmd_device.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/cmd_device.c b/cmd_device.c index fa63e48d..797b958c 100644 --- a/cmd_device.c +++ b/cmd_device.c @@ -95,12 +95,20 @@ int cmd_device_add(int argc, char *argv[]) dev_opts.path = dev_path; dev_opts.fd = open_for_format(dev_opts.path, force); - format_opts.block_size = - read_file_u64(fs.sysfs_fd, "block_size") >> 9; - format_opts.btree_node_size = - read_file_u64(fs.sysfs_fd, "btree_node_size") >> 9; + struct bch_opt_strs fs_opt_strs; + memset(&fs_opt_strs, 0, sizeof(fs_opt_strs)); - struct bch_sb *sb = bch2_format(format_opts, &dev_opts, 1); + struct bch_opts fs_opts = bch2_parse_opts(fs_opt_strs); + + opt_set(fs_opts, block_size, + read_file_u64(fs.sysfs_fd, "block_size") >> 9); + opt_set(fs_opts, btree_node_size, + read_file_u64(fs.sysfs_fd, "btree_node_size") >> 9); + + struct bch_sb *sb = bch2_format(fs_opt_strs, + fs_opts, + format_opts, + &dev_opts, 1); free(sb); fsync(dev_opts.fd); close(dev_opts.fd); |