[Libguestfs] libguestfs error: mkfs_btrfs

Chen, Hanxiao chenhanxiao at cn.fujitsu.com
Tue May 19 02:30:08 UTC 2015


Hi,

That’s a check of  btrfs filesystem.

see the commit of btrfs-progs:
http://git.kernel.org/cgit/linux/kernel/git/kdave/btrfs-progs.git/commit/?id=18e2663db3e18d4506b6fe583ad93fc83235fca9

btrfs-progs: Add minimum device size check

Btrfs has global block reservation, so even mkfs.btrfs can execute
without problem, there is still a possibility that the filesystem can't
be mounted.
For example when mkfs.btrfs on a 8M file on x86_64 platform, kernel will
refuse to mount due to ENOSPC, since system block group takes 4M and
mixed block group takes 4M, and global block reservation will takes all
the 4M from mixed block group, which makes btrfs unable to create uuid
tree.

This patch will add minimum device size check before actually mkfs.
The minimum size calculation uses a simplified one:
minimum_size_for_each_dev = 2 * (system block group + global block rsv)
and global block rsv = leafsize << 10



From: libguestfs-bounces at redhat.com [mailto:libguestfs-bounces at redhat.com] On Behalf Of fu lirong
Sent: Tuesday, May 19, 2015 10:01 AM
To: libguestfs at redhat.com
Subject: [Libguestfs] libguestfs error: mkfs_btrfs

Hi all :

there is a problem on libguestfs-1.29.40 after  command :make check


libguestfs: error: mkfs_btrfs: /dev/vda1: device /dev/vda1 is too small (must be at least 256 MB)
FAIL: test_btrfs_image_0
  3/515 test_btrfstune_enable_skinny_metadata_extent_refs_0
libguestfs: error: btrfstune_enable_skinny_metadata_extent_refs: /dev/vda1: btrfstune: invalid option -- 'x'
usage: btrfstune [options] device
    -S value    enable/disable seeding
FAIL: test_btrfstune_enable_skinny_metadata_extent_refs_0
  4/515 test_btrfstune_enable_extended_inode_refs_0
libguestfs: error: btrfstune_enable_extended_inode_refs: /dev/vda1: btrfstune: invalid option -- 'r'
usage: btrfstune [options] device
    -S value    enable/disable seeding
FAIL: test_btrfstune_enable_extended_inode_refs_0
  5/515 test_btrfstune_seeding_0
libguestfs: error: btrfstune_seeding: /dev/vda1: btrfstune: invalid option -- 'f'
I found two patch
https://www.redhat.com/archives/libguestfs/2012-May/msg00018.htmlvirt-make-fs     Fix estimation when making btrfs (but there is no virt-make-fs under tools)
https://www.redhat.com/archives/libguestfs/2012-April/msg00008.html    New API: mkfs-btrfs for creating btrfs filesystems ( It was patched in  libguestfs-1.29.40)
It seems stupid, but I can't find the answer, I am sorry


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20150519/11e46a23/attachment.htm>


More information about the Libguestfs mailing list