Userspace utilities to manage btrfs filesystems
Go to file
Wang Shilong 32a8c1dd90 Btrfs-progs: fix missing recow roots when making btrfs filesystem
When making btrfs filesystem. we firstly write root leaf to
specified filed, and then we recow the root. If we don't recow,
some trees are not in the correct block group.

Steps to reproduce:
	dd if=/dev/zero of=test.img bs=1M count=100
	mkfs.btrfs -f test.img
	btrfs-debug-tree test.img

extent tree key (EXTENT_TREE ROOT_ITEM 0)
leaf 4210688 items 10 free space 3349 generation 4 owner 2
fs uuid 2e08fd93-f24d-4f44-a226-e2116fcd544f
chunk uuid dc482988-6246-46ce-9329-68bcf6d3683c
	item 0 key (0 BLOCK_GROUP_ITEM 4194304) itemoff 3971 itemsize 24
		block group used 12288 chunk_objectid 256 flags 2
	[..snip..]
	item 3 key (1138688 EXTENT_ITEM 4096) itemoff 3827 itemsize 42
		extent refs 1 gen 1 flags 2
		tree block key (0 UNKNOWN.0 0) level 0
	item 4 key (1138688 TREE_BLOCK_REF 7) itemoff 3827 itemsize 0
		tree block backref
	[..snip..]

checksum tree key (CSUM_TREE ROOT_ITEM 0)
leaf 1138688 items 0 free space 3995 generation 1 owner 7
fs uuid 2e08fd93-f24d-4f44-a226-e2116fcd544f
chunk uuid dc482988-6246-46ce-9329-68bcf6d3683c

For the above example, csum root leaf comes into system block group which
is wrong,csum root leaf should be in metadata block group.

Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
Reviewed-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
2013-07-03 14:06:54 -04:00
man Btrfs-image: add the ability to santize file names when making an image 2013-06-19 13:35:15 -04:00
.gitignore Btrfs-progs: tool to visualize fragmentation 2013-03-19 18:24:51 +01: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
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: standardize tool source filenames 2013-04-24 14:05:33 +02:00
btrfs-convert.c btrfs-progs: standardize tool source filenames 2013-04-24 14:05:33 +02:00
btrfs-corrupt-block.c Add basic RAID[56] support 2013-02-01 14:22:07 -05:00
btrfs-crc.c Btrfs-progs: btrfs-crc: support specifying checksum in hex 2013-04-23 19:10:12 +02:00
btrfs-debug-tree.c btrfs-progs: standardize tool source filenames 2013-04-24 14:05:33 +02:00
btrfs-defrag.c new util: 'btrfs' 2010-03-11 13:45:47 -05:00
btrfs-find-root.c btrfs-progs: standardize tool source filenames 2013-04-24 14:05:33 +02:00
btrfs-fragments.c btrfs-progs: standardize tool source filenames 2013-04-24 14:05:33 +02:00
btrfs-image.c Btrfs-progs: make image restore with the original device offsets 2013-06-19 13:52:25 -04:00
btrfs-list.c Btrfs-progs: fix compile warnings in i386 machine 2013-05-10 10:55:22 -04:00
btrfs-list.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
btrfs-map-logical.c Add basic RAID[56] support 2013-02-01 14:22:07 -05: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: don't call close on error fd 2013-02-27 14:39:45 +01:00
btrfs-zero-log.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
btrfs.c Btrfs-progs: add restore command to btrfs 2013-02-12 23:46:15 +01:00
btrfstune.c Btrfs-progs: add a free space cache checker to fsck V2 2013-04-23 18:56:21 +02:00
cmds-balance.c btrfs-progs: no pending balance is not an error 2013-04-23 18:56:20 +02:00
cmds-check.c Btrfs-progs: fix reference check for roots in btrfsck 2013-06-19 13:52:56 -04:00
cmds-device.c btrfs-progs: rework get_fs_info to remove side effects 2013-03-12 17:07:40 +01:00
cmds-filesystem.c Btrfs-progs: record errno for ioctl DEFRAG_RANGE 2013-04-23 18:56:27 +02:00
cmds-inspect.c Btrfs-progs: add function to map subvol ID to path 2013-04-23 19:16:25 +02:00
cmds-qgroup.c btrfs-progs: add quota-related info to usage messages 2013-04-23 18:56:21 +02:00
cmds-quota.c Btrfs-progs: quota rescan 2013-04-23 18:56:27 +02:00
cmds-receive.c btrfs-progs: Fix the receive code pathing 2013-04-23 18:56:25 +02:00
cmds-replace.c btrfs-progs: rework get_fs_info to remove side effects 2013-03-12 17:07:40 +01:00
cmds-restore.c Btrfs-progs: pass properly formated key to read_fs_root 2013-06-19 13:52:22 -04:00
cmds-scrub.c btrfs-progs: fix btrfs scrub start help 2013-04-23 18:56:19 +02:00
cmds-send.c Btrfs-progs: btrfs-send: free used memory and close fds 2013-04-23 19:12:03 +02:00
cmds-subvolume.c Btrfs-progs: fix compile warnings in i386 machine 2013-05-10 10:55:22 -04:00
commands.h Btrfs-progs: add restore command to btrfs 2013-02-12 23:46:15 +01:00
COPYING fix COPYING 2007-06-12 15:41:08 -04:00
crc32c.c Btrfs-progs: fix several complie warning 2012-10-04 16:26:31 -04:00
crc32c.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
ctree.c Btrfs-progs: add --init-extent-tree to btrfsck 2013-06-19 13:52:34 -04:00
ctree.h Btrfs-progs: add --init-extent-tree to btrfsck 2013-06-19 13:52:34 -04:00
dir-item.c Fix unused-but-set errors in gcc-4.6 2011-10-25 09:18:32 -04:00
dir-test.c btrfs-progs: Handle errors returned from open_ctree 2013-01-21 18:27:54 +01:00
disk-io.c Btrfs-progs: make fsck fix certain file extent inconsistencies 2013-06-19 13:52:16 -04:00
disk-io.h Btrfs-progs: make restore deal with really broken file systems 2013-04-23 18:56:27 +02:00
extent_io.c Btrfs-progs: add a free space cache checker to fsck V2 2013-04-23 18:56:21 +02:00
extent_io.h Btrfs-progs: add a free space cache checker to fsck V2 2013-04-23 18:56:21 +02:00
extent-cache.c Fix unused-but-set errors in gcc-4.6 2011-10-25 09:18:32 -04:00
extent-cache.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
extent-tree.c Btrfs-progs: fix the allocator 2013-06-19 13:52:45 -04:00
file-item.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
free-space-cache.c Btrfs-progs: add a newline to a free space cache message 2013-06-19 13:52:28 -04: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: allow multi-line command group synopsis 2012-02-08 18:55:51 +02:00
inode-item.c btrfs-progs new dir index support 2008-07-24 12:13:32 -04:00
inode-map.c btrfs-progs: Fix printf format casting errors 2008-04-01 10:52:22 -04:00
INSTALL Removing btrfsctl, btrfs-vol, btrfs-show 2013-03-19 18:21:41 +01:00
ioctl-test.c Test the additional ioctl. 2011-10-25 09:18:58 -04:00
ioctl.h Btrfs-progs: fixup: add flags to struct btrfs_ioctl_quota_rescan_args 2013-05-10 10:55:22 -04:00
kerncompat.h Merge branch 'cov-fixes-v1-integration-20130201' of http://git.zabbo.net/cgit/btrfs-progs into merged 2013-02-06 12:51:58 -05:00
list.h btrfs-progs: make libbtrfs usable from C++ 2013-02-19 11:15:30 +01:00
Makefile btrfs-progs: Add default rules to Makefile 2013-04-24 14:08:01 +02:00
mkfs.c Btrfs-progs: fix missing recow roots when making btrfs filesystem 2013-07-03 14:06:54 -04:00
print-tree.c Btrfs-progs: in btrfs-debug-tree, print -1 in key for (u64)-1 2013-04-23 19:12:33 +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: clean up reduplicate parse_qgroupid() and replace atoi with strtoull 2013-01-21 18:28:01 +01:00
qgroup.h Btrfs-progs: clean up reduplicate parse_qgroupid() and replace atoi with strtoull 2013-01-21 18:28:01 +01:00
quick-test.c btrfs-progs: Handle errors returned from open_ctree 2013-01-21 18:27:54 +01:00
radix-tree.c Make btrfs-progs compile with -fstrict-aliasing (included in -O2) again. 2007-09-14 10:31:06 -04:00
radix-tree.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
raid6.c btrfs-progs: include kerncompat.h in raid6.c, define __attribute_const__ 2013-02-03 12:39:16 -05:00
random-test.c btrfs-progs: Handle errors returned from open_ctree 2013-01-21 18:27:54 +01:00
rbtree.c Stop using radix trees to record pending allocations 2007-10-15 16:25:04 -04:00
rbtree.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
repair.c Btrfsck: add the ability to prune corrupt extent allocation tree blocks 2012-02-21 14:37:21 -05: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: update generation_v2 in btrfs_update_root 2013-04-23 18:56:28 +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 send-test build 2013-04-23 18:56:27 +02:00
send-utils.c Btrfs-progs: add function to map subvol ID to path 2013-04-23 19:16:25 +02:00
send-utils.h Btrfs-progs: add function to map subvol ID to path 2013-04-23 19:16:25 +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: mkfs seg fault for wrong free 2013-05-02 22:30:02 -04:00
utils.h btrfs-progs: mkfs should first check all disks before writing to a disk 2013-04-23 18:56:20 +02:00
version.sh version.sh: fix version when built from tarball 2013-01-17 18:13:03 +01:00
volumes.c btrfs-progs: delete unused function btrfs_read_super_device 2013-04-23 18:56:26 +02:00
volumes.h Merge branch 'for-chris' of git://repo.or.cz/btrfs-progs-unstable/devel into raid56 2013-02-06 12:42:24 -05:00