diff options
author | Zhao Lei <zhaolei@cn.fujitsu.com> | 2015-11-03 11:23:36 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2015-11-03 13:16:05 +0100 |
commit | fa2dcf14063bd280c5d6b30309fe54cda3c29e30 (patch) | |
tree | 0513b44a77d0f1dbaa3b370410be827e76347927 /utils.c | |
parent | a40b0ff048385bde41935c4353154cdfc234ee64 (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 <quwenruo@cn.fujitsu.com>
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'utils.c')
-rw-r--r-- | utils.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -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; |