Go to file
Wang Shilong 67d3c3c0d3 Btrfs-progs: try harder to make btrfs receive successfully
Steps to reproduce:
	# mkfs.btrfs -f <dev>
	# mount <dev> <mnt>
	# mkdir <mnt>/backup
	# btrfs sub create <mnt>/subv
	# btrfs sub snapshot -r <mnt>/subv <mnt>/snap1
	# btrfs sub snapshot -r <mnt>/subv <mnt>/snap2
	# btrfs send <mnt>/snap2 -p <mnt>/snap1 -f sent_file
	# btrfs receive -f sent_file <mnt>/backup

Above steps will make btrfs receive fails with "ERROR: can not find
parent subvolume", this is because we try to find parent subvolume by
RECEIVED_SUBVOL_KEY,and it will return ENOENT if parent snapshot has not
been sent or it has been deleted. Actually, we can try harder to find
whether parent subvolume exists by searching uuid key.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Reviewed-by: Stefan Behrens <sbehrens@giantdisaster.de>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
2014-01-31 08:22:02 -08:00
man btrfs-progs: man: add rescue super-recover bits 2013-11-14 12:21:17 -05:00
tests Btrfs-progs: add a test image for the transid fixer in btrfsck 2013-10-16 08:23:12 -04:00
.gitignore btrfs-progs: get C=1 sparse checking working again 2013-09-03 19:41:12 +02: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 Add -fno-strict-aliasing 2013-11-22 08:41:50 -05: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: free leaked roots in calc-size 2013-10-16 08:23:13 -04:00
btrfs-convert.c Btrfs-progs: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05:00
btrfs-corrupt-block.c Btrfs-progs: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05: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: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05:00
btrfs-find-root.c Btrfs-progs: pass flag to control whether run ioctl in btrfs_scan_for_fsid() 2013-10-16 08:22:26 -04:00
btrfs-fragments.c btrfs-progs: remove unused variables 2013-10-16 08:23:13 -04:00
btrfs-image.c Btrfs-progs: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05:00
btrfs-list.c btrfs-progs: add filter for deleted but uncleanded subvolumes 2013-10-24 05:57:44 -04:00
btrfs-list.h btrfs-progs: add filter for deleted but uncleanded subvolumes 2013-10-24 05:57:44 -04:00
btrfs-map-logical.c btrfs-progs: fix -Wmissing-noreturn 2013-10-16 08:20:43 -04: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: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05:00
btrfs.c btrfs-progs: move chunk-recover to rescue group 2013-10-16 08:21:38 -04: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: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05:00
chunk-recover.c btrfs-progs: Make btrfs_header_fsid() return unsigned long 2013-10-16 08:23:11 -04:00
cmds-balance.c Btrfs-progs: fix magic return value in cmds-balance.c 2013-10-16 08:20:43 -04:00
cmds-check.c Btrfs-progs: don't output baffling message when checking a fresh fs 2014-01-31 08:21:59 -08:00
cmds-device.c Btrfs-progs: make sure we return an error when we can't add a device 2013-10-24 05:57:44 -04:00
cmds-filesystem.c btrfs-progs: make filesystem show by label work 2014-01-31 08:21:58 -08:00
cmds-inspect.c btrfs-progs: look up the containing tree root id 2013-10-16 08:23:11 -04:00
cmds-qgroup.c btrfs-progs: annotate fallthroughs in parse_limit 2013-11-07 16:10:41 -05: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: try harder to make btrfs receive successfully 2014-01-31 08:22:02 -08:00
cmds-replace.c Btrfs-progs: fix magic return value in cmds-replace.c 2013-10-16 08:20:42 -04:00
cmds-rescue.c Btrfs-progs: add super-recover to recover bad supers 2013-10-16 08:23:08 -04:00
cmds-restore.c Btrfs-progs: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05: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: use /proc/self/mounts 2014-01-31 08:22:01 -08:00
cmds-subvolume.c btrfs-progs: fix potential double-frees in cmd_subvol_delete() 2013-11-07 16:10:40 -05:00
commands.h Btrfs-progs: add super-recover to recover bad supers 2013-10-16 08:23:08 -04: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: keep track of transid failures and fix them if possible 2013-10-16 08:23:12 -04:00
ctree.h mkfs: fix mkfs -r to properly allocate space 2013-10-16 10:42:53 -04:00
dir-item.c btrfs-progs: drop unused parameter from btrfs_item_nr 2013-10-16 08:23:10 -04: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: make it static if function isn't called outside 2014-01-31 08:22:01 -08:00
disk-io.h Btrfs-progs: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05: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 mkfs: fix mkfs -r to properly allocate space 2013-10-16 10:42:53 -04:00
extent_io.c Btrfs-progs: keep track of transid failures and fix them if possible 2013-10-16 08:23:12 -04:00
extent_io.h Btrfs-progs: keep track of transid failures and fix them if possible 2013-10-16 08:23:12 -04: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: fix typo in btrfs_err_str() 2013-10-16 08:20:42 -04: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
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
math.h Btrfs-progs: cleanup duplicated division functions 2013-08-09 14:32:28 +02:00
mkfs.c btrfs-progs: for mixed group check opt before default raid profile is enforced 2013-11-15 12:30:13 -05:00
print-tree.c btrfs-progs: Make btrfs_header_fsid() return unsigned long 2013-10-16 08:23:11 -04: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: make it static if function isn't called outside 2014-01-31 08:22:01 -08:00
qgroup.h Btrfs-progs: enhance btrfs qgroup show to sort qgroups 2013-10-16 08:23:12 -04: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: 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: just return -ENOENT if we don't find the root item 2013-10-24 05:57:44 -04: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: don't deref pipefd[-1] 2013-10-16 08:23:13 -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
super-recover.c Btrfs-progs: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05: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: make it static if function isn't called outside 2014-01-31 08:22:01 -08:00
utils.h Btrfs-progs: make pretty_sizes take u64 instead of a double 2013-10-24 05:57:44 -04:00
uuid-tree.c btrfs-progs: fix in-place byte swapping 2013-09-03 19:41:06 +02:00
version.sh Update the version 2013-11-25 15:48:57 -05:00
volumes.c btrfs-progs: calculate available blocks on device properly 2013-10-16 08:20:42 -04:00
volumes.h btrfs-progs: mark static & remove unused from shared kernel code 2013-09-03 19:40:53 +02:00