forked from Mirrors/btrfs-progs
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>master
parent
a40b0ff048
commit
fa2dcf1406
2
utils.c
2
utils.c
|
@ -736,6 +736,8 @@ int btrfs_add_to_fsid(struct btrfs_trans_handle *trans,
|
||||||
u64 num_devs;
|
u64 num_devs;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
device_total_bytes = (device_total_bytes / sectorsize) * sectorsize;
|
||||||
|
|
||||||
device = kzalloc(sizeof(*device), GFP_NOFS);
|
device = kzalloc(sizeof(*device), GFP_NOFS);
|
||||||
if (!device)
|
if (!device)
|
||||||
goto err_nomem;
|
goto err_nomem;
|
||||||
|
|
Loading…
Reference in New Issue