Go to file
Qu Wenruo 922352bcfb Revert "btrfs-progs: mkfs: create only desired block groups for single device"
This reverts commit 5f8232e5c8.

This commit causes a regression:

$ mkfs.btrfs -f /dev/sda6
$ btrfsck /dev/sda6
Checking filesystem on /dev/sda6
UUID: 2ebb483c-1986-4610-802a-c6f3e6ab4b76
checking extents
Chunk[256, 228, 0]: length(4194304), offset(0), type(2) mismatch with
block group[0, 192, 4194304]: offset(4194304), objectid(0), flags(34)
Chunk[256, 228, 4194304]: length(8388608), offset(4194304), type(4)
mismatch with block group[4194304, 192, 8388608]: offset(8388608),
objectid(4194304), flags(36)
Block group[0, 4194304] (flags = 34) didn't find the relative chunk.
Block group[4194304, 8388608] (flags = 36) didn't find the relative
chunk.
......

The commit has the following bug causing the problem.
1) Typo forgets to add meta/data_profile for alloc_chunk.
Only meta/data_profile is added to allocate a block group, but not
chunk.

2) Type for the first system chunk is impossible to modify yet.
The type for the first chunk and its stripe is hard coded into
make_btrfs() function.
So even we try to modify the type of the block group, we are unable to
change the type of the first chunk.
Causing the chunk type mismatch problem.

The 1st bug can be fixed quite easily but the second is not.
The good news is, the last patch "btrfs-progs: mkfs: Cleanup temporary
chunk to avoid strange balance behavior." from my patchset can handle it
quite well alone.

So just revert the patch.
New bug fix for btrfsck(err is 0 even chunk/extent tree is corrupted) and
new test cases for mkfs will follow soon.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2015-07-14 13:42:13 +02:00
Documentation btrfs-progs: doc: fix short explanation of restore in btrfs 2015-07-01 15:28:14 +02:00
tests btrfs-progs: tests: Add test case for I_ERR_FILE_WRONG_NBYTES repair 2015-07-03 17:57:48 +02:00
.gitignore btrfs-progs: update .gitignore 2015-06-02 17:16:47 +02:00
COPYING fix COPYING 2007-06-12 15:41:08 -04:00
INSTALL btrfs-progs: INSTALL: fix typos 2015-06-22 01:39:27 +02:00
Makefile.in btrfs-progs: Makefile: fix typo, dependencies for cmds-* files 2015-06-16 17:15:03 +02:00
autogen.sh btrfs-progs: build, make autogen.sh work on older systems 2015-01-28 19:03:23 +01:00
backref.c btrfs-progs: read_tree_block() and read_node_slot() cleanup. 2015-02-02 19:21:24 +01:00
backref.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
bcp Btrfs-progs: Correct path munging in bcp 2011-10-25 09:18:58 -04:00
bitops.h btrfs-progs: compat: define DIV_ROUND_UP if not already defined 2015-06-05 23:29:59 +02:00
btrfs-calc-size.c Btrfs-progs: fix compile warnings 2015-04-14 15:11:24 +02:00
btrfs-completion btrfs-progs: add 'device remove' alias to completion 2015-07-01 15:39:59 +02:00
btrfs-convert.c btrfs-progs: drop unused parameter from make_btrfs 2015-07-01 17:54:43 +02:00
btrfs-corrupt-block.c btrfs-progs: let corrupt-block kill nbytes 2015-07-03 18:07:17 +02:00
btrfs-crc.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-debug-tree.c btrfs-progs: accept --help as option in the standalone utilities 2015-06-11 00:23:30 +02:00
btrfs-debugfs btrfs-progs: Add simple python front end to the search ioctl 2014-12-04 17:03:49 +01:00
btrfs-find-root.c btrfs-progs: accept --help as option in the standalone utilities 2015-06-11 00:23:30 +02:00
btrfs-fragments.c btrfs-progs: drop feature defines from C files, in favour of CFLAGS defines 2015-01-27 14:45:59 +01:00
btrfs-image.c btrfs-progs: accept --help as option in the standalone utilities 2015-06-11 00:23:30 +02:00
btrfs-list.c btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
btrfs-list.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
btrfs-map-logical.c btrfs-progs: map-logical: Rework map-logical logics 2015-06-17 16:10:18 +02:00
btrfs-select-super.c btrfs-progs: autoconf: use standard PACKAGE_* macros 2015-01-28 18:00:58 +01:00
btrfs-show-super.c btrfs-progs: show-super: print human readable text for super flags 2015-05-14 15:41:07 +02:00
btrfs-zero-log.c btrfs-progs: cleanup and deprecate btrfs-zero-log 2015-06-05 18:02:08 +02:00
btrfs.c btrfs-progs: print compact help for btrfs 2015-06-09 14:27:54 +02:00
btrfsck.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
btrfstune.c btrfs-progs: btrfstune: print correct current uuid during rewrite 2015-06-18 19:49:44 +02:00
chunk-recover.c Btrfs-progs: skip opening all devices with restore 2015-02-09 14:53:15 -05:00
cmds-balance.c btrfs-progs: add command group info strings 2015-06-09 14:26:33 +02:00
cmds-check.c btrfs-progs: fsck: Add repair function for I_ERR_FILE_WRONG_NBYTES 2015-07-03 17:57:30 +02:00
cmds-device.c btrfs-progs: alias btrfs device delete to btrfs device remove 2015-06-26 16:33:39 +02:00
cmds-fi-usage.c btrfs-progs: cleanup, rename *disk_usage* files to usage 2015-04-22 18:21:48 +02:00
cmds-fi-usage.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
cmds-filesystem.c btrfs-progs: replace struct cmd_group->hidden with flags 2015-06-26 16:33:38 +02:00
cmds-inspect.c btrfs-progs: inspect: Fix out of bounds string termination. 2015-06-26 16:25:39 +02:00
cmds-property.c btrfs-progs: add command group info strings 2015-06-09 14:26:33 +02:00
cmds-qgroup.c btrfs-progs: add command group info strings 2015-06-09 14:26:33 +02:00
cmds-quota.c btrfs-progs: add command group info strings 2015-06-09 14:26:33 +02:00
cmds-receive.c btrfs-progs: receive: use static buffer for cur_subvol path 2015-06-16 17:15:03 +02:00
cmds-replace.c btrfs-progs: print error within test_dev_for_mkfs 2015-06-11 00:46:30 +02:00
cmds-rescue.c btrfs-progs: add command group info strings 2015-06-09 14:26:33 +02:00
cmds-restore.c btrfs-progs: restore: add more long option variants 2015-05-14 15:41:06 +02:00
cmds-scrub.c btrfs-progs: use PATH_MAX instead of BTRFS_PATH_NAME_MAX 2015-06-12 16:44:47 +02:00
cmds-send.c btrfs-progs: send: use static buffer for output file name 2015-06-15 14:09:10 +02:00
cmds-subvolume.c btrfs-progs: properly set up ioctl arguments 2015-06-12 16:44:48 +02:00
commands.h btrfs-progs: alias btrfs device delete to btrfs device remove 2015-06-26 16:33:39 +02:00
configure.ac btrfs-progs: configure: fix typo in summary 2015-06-22 01:13:48 +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: check for item end outside of leaf 2015-07-01 15:20:23 +02:00
ctree.h btrfs-progs: extent-tree: Introduce btrfs_free_block_group function 2015-07-10 14:39:39 +02:00
dir-item.c Btrfs-progs: delete bogus dir indexes 2014-10-14 10:45:03 +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: disk-io: Support commit transaction on chunk tree 2015-07-10 14:29:09 +02:00
disk-io.h btrfs-progs: export read_extent_data function 2015-06-17 16:08:35 +02:00
extent-cache.c btrfs-progs: Add last_cache_extent() for extent-cache. 2014-12-10 11:54:10 +01:00
extent-cache.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
extent-tree.c btrfs-progs: extent-tree: Introduce btrfs_free_block_group function 2015-07-10 14:39:39 +02:00
extent_io.c btrfs-progs: Move (set/clear_)extent_buffer_uptodate() to extent_io.h. 2015-02-27 17:44:11 +01:00
extent_io.h btrfs-progs: Move (set/clear_)extent_buffer_uptodate() to extent_io.h. 2015-02-27 17:44:11 +01:00
file-item.c btrfs-progs: remove btrfs_release_path before btrfs_free_path 2014-09-14 19:06:12 +02:00
file.c btrfs-progs: Add btrfs_get_extent() and btrfs_punch_hole(). 2015-02-02 14:16:38 +01:00
find-root.c btrfs-progs: Add new find-root.[ch] infrastructure 2015-02-11 18:34:04 +01:00
find-root.h btrfs-progs: Add new find-root.[ch] infrastructure 2015-02-11 18:34:04 +01:00
free-space-cache.c btrfs-progs: check for matching free space in cache 2015-04-24 15:42:04 +02:00
free-space-cache.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
fsck.btrfs btrfs-progs: fsck.btrfs: Fix bashism and bad getopts processing 2015-05-21 16:53:44 +02:00
hash.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
hasher.c Unaligned access fixes 2008-02-15 11:19:58 -05:00
help.c btrfs-progs: no extra newline between aliased commands in help text 2015-06-26 16:44:29 +02:00
inode-item.c btrfs-progs: fix overflow check in btrfs_insert_inode_ref 2014-12-30 15:48:55 +01:00
inode-map.c btrfs-progs: remove btrfs_release_path before btrfs_free_path 2014-09-14 19:06:12 +02:00
inode.c btrfs-progs: handle orphan creation error in btrfs_unlink 2015-01-06 18:46:03 +01: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: add missing includes to header files 2015-06-10 02:52:21 +02:00
kerncompat.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
library-test.c btrfs-progs: build, add basic build test for library 2014-11-07 17:52:57 +01:00
list.h Btrfs-progs: introduce list_{first, next}_entry/list_splice_tail{_init} 2013-07-03 14:06:55 -04:00
list_sort.c btrfs-progs: add list_sort and use it to sort devices by id 2013-10-16 08:22:26 -04:00
list_sort.h btrfs-progs: add list_sort and use it to sort devices by id 2013-10-16 08:22:26 -04:00
mkfs.c Revert "btrfs-progs: mkfs: create only desired block groups for single device" 2015-07-14 13:42:13 +02:00
print-tree.c btrfs-progs: Add nbytes output for print-tree and reformat inode output 2015-06-26 16:47:57 +02:00
print-tree.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
props.c btrfs-progs: Introduce change_header_uuid function 2015-05-14 15:41:07 +02:00
props.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
qgroup-verify.c btrfs-progs: read_tree_block() and read_node_slot() cleanup. 2015-02-02 19:21:24 +01:00
qgroup-verify.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
qgroup.c btrfs-progs: qgroup: show 'none' when we did not limit it on this qgroup 2015-06-05 18:35:17 +02:00
qgroup.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
quick-test.c Btrfs-progs: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05:00
radix-tree.c btrfs-progs: Remove a unused function root_gtp_mask(). 2014-12-19 15:04:56 +01: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-utils.c Btrfs-progs: break out rbtree util functions 2014-10-14 10:39:39 +02:00
rbtree-utils.h btrfs-progs: libbtrfs, make exported headers compatible with C++ 2014-11-03 23:50:50 +01:00
rbtree.c Btrfs-progs: update rbtree libs 2014-10-14 10:39:40 +02:00
rbtree.h btrfs-progs: libbtrfs, make exported headers compatible with C++ 2014-11-03 23:50:50 +01:00
rbtree_augmented.h btrfs-progs: libbtrfs, make exported headers compatible with C++ 2014-11-03 23:50:50 +01:00
repair.c Btrfs-progs: introduce common insert/search/delete functions for rb-tree 2013-07-03 14:06:54 -04:00
repair.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
root-tree.c Btrfs-progs: free path if we don't find root item 2014-03-21 06:23:32 -07:00
send-stream.c btrfs-progs: fix compiler warning 2014-11-07 18:14:38 +01:00
send-stream.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
send-test.c btrfs-progs: drop feature defines from C files, in favour of CFLAGS defines 2015-01-27 14:45:59 +01:00
send-utils.c btrfs-progs: drop argument from attribute deprecated 2015-06-30 15:05:07 +02:00
send-utils.h btrfs-progs: drop argument from attribute deprecated 2015-06-30 15:05:07 +02:00
send.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
show-blocks Fix showblocks to display different colors for different metadata roots 2009-03-09 13:00:44 -04:00
string-table.c btrfs-progs: Add helpers functions to handle the printing of data in tabular format 2014-12-04 16:48:09 +01:00
string-table.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
super-recover.c Btrfs-progs: skip opening all devices with restore 2015-02-09 14:53:15 -05:00
task-utils.c btrfs-progs: convert: use task for progress indication of metadata creation 2014-12-04 17:13:44 +01:00
task-utils.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
transaction.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
ulist.c btrfs-progs: import ulist 2014-08-22 14:39:33 +02:00
ulist.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
utils-lib.c btrfs-progs: drop feature defines from C files, in favour of CFLAGS defines 2015-01-27 14:45:59 +01:00
utils.c btrfs-progs: drop unused parameter from make_btrfs 2015-07-01 17:54:43 +02:00
utils.h btrfs-progs: drop unused parameter from make_btrfs 2015-07-01 17:54:43 +02:00
uuid-tree.c btrfs-progs: fix in-place byte swapping 2013-09-03 19:41:06 +02:00
version.h.in btrfs-progs: re-introduce BTRFS_BUILD_VERSION in version.h 2015-03-16 18:40:06 +01:00
version.sh Btrfs progs v4.1.1 2015-07-10 15:27:49 +02:00
volumes.c btrfs-progs: btrfstune: fix a bug which makes unfinished fsid change unrecoverable 2015-05-26 17:25:10 +02:00
volumes.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00