From fa2dcf14063bd280c5d6b30309fe54cda3c29e30 Mon Sep 17 00:00:00 2001 From: Zhao Lei Date: Tue, 3 Nov 2015 11:23:36 +0800 Subject: [PATCH] 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 --- utils.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utils.c b/utils.c index 93338be..d546bea 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; -- 2.7.4