diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-11-06 20:47:48 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-11-06 20:47:48 -0500 |
commit | 469e8eb008ebbe7fa7924dd20cfa8af32cb7008c (patch) | |
tree | 962dd7c799d7682c7b5a564909c9953f5948b030 /cmd_migrate.c | |
parent | a0371350efecbc09ca24864a414eee2d7c691c34 (diff) |
Avoiding picking different bucket sizes for different devices
Erasure coding can't create stripes across devices with different bucket
sizes - therefore, format shouldn't pick different bucket sizes for
different devices.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'cmd_migrate.c')
-rw-r--r-- | cmd_migrate.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/cmd_migrate.c b/cmd_migrate.c index f82dd618..cde1fce4 100644 --- a/cmd_migrate.c +++ b/cmd_migrate.c @@ -677,7 +677,11 @@ static int migrate_fs(const char *fs_path, printf("Creating new filesystem on %s in space reserved at %s\n", dev.path, file_path); - bch2_pick_bucket_size(fs_opts, &dev); + dev.size = get_size(dev.bdev->bd_buffered_fd); + dev.bucket_size = bch2_pick_bucket_size(fs_opts, &dev); + dev.nbuckets = dev.size / dev.bucket_size; + + bch2_check_bucket_size(fs_opts, &dev); u64 bcachefs_inum; ranges extents = reserve_new_fs_space(file_path, |