Go to file
Hidetoshi Seto 49fef6fc53 btrfs-progs: error if device have no space to make primary chunks
The previous patch works fine if the size of specified volume to mkfs
is less than 4MB. However usually btrfs requires more than 4MB to work,
and the minimum preferred size is depending on the raid setting etc.

This patch let mkfs print error message if it cannot allocate one of
chunks should be there at first.

 [before]
  # truncate --size=4500K testfile
  # ./mkfs.btrfs -f testfile
   :
  SMALL VOLUME: forcing mixed metadata/data groups
  mkfs.btrfs: mkfs.c:84: make_root_dir: Assertion `!(ret)' failed.
  Aborted (core dumped)

 [After]
  # truncate --size=4500K testfile
  # ./mkfs.btrfs -f testfile
   :
  SMALL VOLUME: forcing mixed metadata/data groups
  no space to alloc data/metadata chunk
  failed to setup the root directory

TBD is calculate minimum size for setting and put it in the error
message to let user know how large amount of volume is required.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
2013-10-16 08:20:42 -04:00
man Btrfs-progs: Add Makefile infrastructure for subdirs 2013-09-10 01:34:50 +02:00
.gitignore btrfs-progs: get C=1 sparse checking working again 2013-09-03 19:41:12 +02:00
.hgignore Add .hgignore file to ignore verison.h 2008-07-23 11:36:13 -04:00
.hgtags Added tag v0.16 for changeset 2b26e4f8c71e 2008-08-04 15:46:36 -04:00
COPYING fix COPYING 2007-06-12 15:41:08 -04:00
INSTALL Removing btrfsctl, btrfs-vol, btrfs-show 2013-03-19 18:21:41 +01:00
Makefile Btrfs-progs: Add Makefile infrastructure for subdirs 2013-09-10 01:34:50 +02:00
bcp Btrfs-progs: Correct path munging in bcp 2011-10-25 09:18:58 -04:00
bitops.h Btrfs-progs: add a free space cache checker to fsck V2 2013-04-23 18:56:21 +02:00
btrfs-calc-size.c btrfs-progs: per-thread, per-call pretty buffer 2013-08-09 14:32:33 +02:00
btrfs-convert.c Btrfs-progs: mkfs can now create fs with skinny extents 2013-09-03 19:41:13 +02:00
btrfs-corrupt-block.c btrfs-progs: drop unused parameter from btrfs_release_path 2013-09-03 19:40:46 +02:00
btrfs-crc.c btrfs-progs: Fix getopt on arm/ppc platforms 2013-08-09 14:32:34 +02:00
btrfs-debug-tree.c btrfs-progs: drop unused parameter from btrfs_release_path 2013-09-03 19:40:46 +02:00
btrfs-find-root.c btrfs-print: define void function args 2013-09-03 19:41:04 +02:00
btrfs-fragments.c Btrfs-progs: fix closing of opendir() 2013-08-09 14:32:36 +02:00
btrfs-image.c btrfs-progs: free local variable buf upon unsuccessful returns 2013-10-16 08:20:42 -04:00
btrfs-list.c btrfs-print: define void function args 2013-09-03 19:41:04 +02:00
btrfs-list.h btrfs-progs: mark static & remove unused from non-kernel code 2013-09-03 19:40:54 +02:00
btrfs-map-logical.c btrfs-progs: use NULL instead of 0 2013-09-03 19:41:11 +02:00
btrfs-select-super.c btrfs-progs: btrfs-select-super output is confusing when it fails 2013-04-23 18:56:20 +02:00
btrfs-show-super.c btrfs-progs: remove variable length stack arrays 2013-09-03 19:41:03 +02:00
btrfs-zero-log.c Btrfs-progs: fix magic return value in btrfs-zero-log.c 2013-10-16 08:20:42 -04:00
btrfs.c btrfs-progs: use NULL instead of 0 2013-09-03 19:41:11 +02:00
btrfsck.h Btrfs-progs: Add chunk rebuild function for RAID1/SINGLE/DUP 2013-07-03 14:06:55 -04:00
btrfstune.c btrfs-progs: mark static & remove unused from non-kernel code 2013-09-03 19:40:54 +02:00
cmds-balance.c btrfs-progs: use NULL instead of 0 2013-09-03 19:41:11 +02:00
cmds-check.c btrfs-progs: missing tree-freeing statements added 2013-10-16 08:20:42 -04:00
cmds-chunk.c Btrfs-progs: fix magic return value in cmds-chunk.c 2013-10-16 08:20:03 -04:00
cmds-device.c Btrfs-progs: fix magic return value in cmds-device.c 2013-10-16 08:20:41 -04:00
cmds-filesystem.c Btrfs-progs: fix magic return value in cmds-filesystem.c 2013-10-16 08:20:41 -04:00
cmds-inspect.c Btrfs-progs: fix magic return value in cmds-inspect.c 2013-10-16 08:20:41 -04:00
cmds-qgroup.c Btrfs-progs: fix magic return value in cmds-qgroup.c 2013-10-16 08:20:41 -04:00
cmds-quota.c Btrfs-progs: fix magic return value in cmds-quota.c 2013-10-16 08:20:41 -04:00
cmds-receive.c Btrfs-progs: fix magic return value in cmds-receive.c 2013-10-16 08:20:41 -04:00
cmds-replace.c Btrfs-progs: fix magic return value in cmds-replace.c 2013-10-16 08:20:42 -04:00
cmds-restore.c Btrfs-progs: fix magic return value in cmds-restore.c 2013-10-16 08:20:41 -04:00
cmds-scrub.c Btrfs-progs: fix magic return value in cmds-scrub.c 2013-10-16 08:20:42 -04:00
cmds-send.c Btrfs-progs: fix magic return value in cmds-send.c 2013-10-16 08:20:41 -04:00
cmds-subvolume.c btrfs-progs: free strdup()s that are not freed 2013-10-16 08:20:42 -04:00
commands.h btrfs-progs: use NULL instead of 0 2013-09-03 19:41:11 +02:00
crc32c.c btrfs-progs: make many private symbols static 2013-09-03 19:41:08 +02:00
crc32c.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
ctree.c btrfs-progs: make many private symbols static 2013-09-03 19:41:08 +02:00
ctree.h btrfs-progs: add ULL to u64 constant 2013-09-03 19:41:01 +02:00
dir-item.c btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
dir-test.c Btrfs-progs: fix magic return value in dir-test.c 2013-10-16 08:20:42 -04:00
disk-io.c btrfs-progs: btrfs_setup_chunk_tree_and_device_map: Return -EIO on error. 2013-10-16 08:20:42 -04:00
disk-io.h btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
extent-cache.c Btrfs-progs: extend the extent cache for the device extent 2013-07-03 14:06:54 -04:00
extent-cache.h Btrfs-progs: extend the extent cache for the device extent 2013-07-03 14:06:54 -04:00
extent-tree.c btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
extent_io.c btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
extent_io.h btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
file-item.c btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
free-space-cache.c btrfs-progs: make many private symbols static 2013-09-03 19:41:08 +02:00
free-space-cache.h Btrfs-progs: add a free space cache checker to fsck V2 2013-04-23 18:56:21 +02:00
hash.h Switch btrfs_name_hash() to crc32c 2008-08-20 20:11:23 -04:00
hasher.c Unaligned access fixes 2008-02-15 11:19:58 -05:00
help.c Btrfs-progs: return 1 rather than 129 in usage() 2013-10-16 08:20:03 -04:00
inode-item.c btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
inode-map.c btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
ioctl-test.c btrfs-progs: mark static & remove unused from non-kernel code 2013-09-03 19:40:54 +02:00
ioctl.h Btrfs-progs: added "btrfs quota rescan" -w switch (wait) 2013-09-03 19:40:50 +02:00
kerncompat.h btrfs-progs: get C=1 sparse checking working again 2013-09-03 19:41:12 +02:00
list.h Btrfs-progs: introduce list_{first, next}_entry/list_splice_tail{_init} 2013-07-03 14:06:55 -04:00
math.h Btrfs-progs: cleanup duplicated division functions 2013-08-09 14:32:28 +02:00
mkfs.c btrfs-progs: error if device have no space to make primary chunks 2013-10-16 08:20:42 -04:00
print-tree.c btrfs-progs: fix in-place byte swapping 2013-09-03 19:41:06 +02:00
print-tree.h Btrfs: add btrfs-debug-tree -b <block number> to print a single block 2010-04-06 09:30:17 -04:00
qgroup.c btrfs-progs: fix qgroup realloc inheritance 2013-09-03 19:41:07 +02:00
qgroup.h btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
quick-test.c btrfs-progs: mark static & remove unused from non-kernel code 2013-09-03 19:40:54 +02:00
radix-tree.c btrfs-progs: make many private symbols static 2013-09-03 19:41:08 +02:00
radix-tree.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
raid6.c btrfs-progs: give raid6.c its exported prototypes 2013-09-03 19:41:11 +02:00
random-test.c Btrfs-progs: fix magic return value in random-test.c 2013-10-16 08:20:42 -04:00
rbtree.c Btrfs-progs: introduce common insert/search/delete functions for rb-tree 2013-07-03 14:06:54 -04:00
rbtree.h Btrfs-progs: introduce common insert/search/delete functions for rb-tree 2013-07-03 14:06:54 -04:00
repair.c Btrfs-progs: introduce common insert/search/delete functions for rb-tree 2013-07-03 14:06:54 -04:00
repair.h Btrfsck: add the ability to prune corrupt extent allocation tree blocks 2012-02-21 14:37:21 -05:00
root-tree.c btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00
send-stream.c Btrfs-progs: remove some unused code 2013-04-23 18:56:25 +02:00
send-stream.h Btrfs-progs: btrfs-receive optionally honors the end-cmd 2013-04-23 18:56:24 +02:00
send-test.c Btrfs-progs: fix magic return value in send-test.c 2013-10-16 08:20:42 -04:00
send-utils.c Btrfs-progs: use UUID tree for send/receive 2013-08-09 14:32:31 +02:00
send-utils.h Btrfs-progs: use UUID tree for send/receive 2013-08-09 14:32:31 +02:00
send.h btrfs-progs: make libbtrfs usable from C++ 2013-02-19 11:15:30 +01:00
show-blocks Fix showblocks to display different colors for different metadata roots 2009-03-09 13:00:44 -04:00
transaction.h btrfs-progs: add malloc check in transaction.h/btrfs_start_transaction 2013-01-18 18:27:21 +01:00
utils.c btrfs-progs: free the local list pending_list in btrfs_scan_one_dir 2013-10-16 08:20:42 -04:00
utils.h btrfs-progs: mkfs should check for small vol well before 2013-10-16 08:20:03 -04:00
uuid-tree.c btrfs-progs: fix in-place byte swapping 2013-09-03 19:41:06 +02:00
version.sh version.sh: fix version when built from tarball 2013-01-17 18:13:03 +01:00
volumes.c btrfs-progs: remove variable length stack arrays 2013-09-03 19:41:03 +02:00
volumes.h btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00