path: root/utils.c
diff options
authorZhao Lei <>2015-11-03 11:23:36 +0800
committerDavid Sterba <>2015-11-03 13:16:05 +0100
commitfa2dcf14063bd280c5d6b30309fe54cda3c29e30 (patch)
tree0513b44a77d0f1dbaa3b370410be827e76347927 /utils.c
parenta40b0ff048385bde41935c4353154cdfc234ee64 (diff)
btrfs-progs: mkfs: Round device size down to sectorsize
When do following command in a vm, whose disks are created by qemu-img create -f raw 11 2.6G: # mkfs.btrfs -f /dev/vdd /dev/vde /dev/vdf # btrfs-show-super /dev/vdd /dev/vde /dev/vdf | grep dev_item.total_bytes dev_item.total_bytes 2791727104 dev_item.total_bytes 2791729152 dev_item.total_bytes 2791729152 We can see that the first device's size is little smaller. And it fails xfstests btrfs/011. Reason: First device's size is rounded down to sectorsize in make_btrfs(), but other devices are not. Fix: Round down remain devices' size in btrfs_add_to_fsid(). Reported-by: Qu Wenruo <> Signed-off-by: Zhao Lei <> Signed-off-by: David Sterba <>
Diffstat (limited to 'utils.c')
1 files changed, 2 insertions, 0 deletions
diff --git a/utils.c b/utils.c
index 93338beb..d546bea2 100644
--- a/utils.c
+++ b/utils.c
@@ -736,6 +736,8 @@ int btrfs_add_to_fsid(struct btrfs_trans_handle *trans,
u64 num_devs;
int ret;
+ device_total_bytes = (device_total_bytes / sectorsize) * sectorsize;
device = kzalloc(sizeof(*device), GFP_NOFS);
if (!device)
goto err_nomem;