Userspace utilities to manage btrfs filesystems
Go to file
Josef Bacik ef2a8889ef Btrfs-progs: make image restore with the original device offsets
I noticed a slight problem with btrfs-image, since it was building a chunk tree
by setting the physical offset of the stripes to the same as the logical offset
it created this problem where the super block was now mapped into the file
system differently than it was before.  This isn't a huge deal except that we
also carry along the free space cache with us, which is setup with the idea that
super at physical X is at logical Y.  So this would make the free space checker
in fsck freak out because it would see that the cache says that the super block
is free space, and that the area where it thought the super block was located is
in fact used.  In the mount case we'd end up overwriting real metadata with
backup super blocks.  So we need to maintain the physical offsets in our
stripes.  This is a huge pain because we store the logical bytenrs of all of our
metadata.  This patch scans the entire image looking for chunk tree blocks and
builds an in memory chunk tree so we can write logical blocks to their physical
offsets.  With this patch we no longer have the problems I described above.
Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
2013-06-19 13:52:25 -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: make fsck fix certain file extent inconsistencies 2013-06-19 13:52:16 -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: sanity check the number of items in a leaf V2 2013-05-10 10:56:59 -04:00
ctree.h Btrfs-progs: make fsck fix certain file extent inconsistencies 2013-06-19 13:52:16 -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: make fsck fix certain file extent inconsistencies 2013-06-19 13:52:16 -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: init free space ctl with proper unit 2013-05-06 13:41:58 -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: use clearer var names in is_ssd() 2013-04-23 18:56:26 +02: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