summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/send.c
diff options
context:
space:
mode:
authorAlexander Block <ablock84@googlemail.com>2012-08-01 14:47:03 +0200
committerChris Mason <chris.mason@fusionio.com>2012-10-01 21:18:59 +0200
commit2981e225f7048b36470383bf5622c42139bd96f7 (patch)
treee0dec28ddd3ffc04cdfbb5fa40dd0058867cf941 /fs/btrfs/send.c
parentBtrfs: pass root instead of parent_root to iterate_inode_ref (diff)
downloadlinux-2981e225f7048b36470383bf5622c42139bd96f7.tar.xz
linux-2981e225f7048b36470383bf5622c42139bd96f7.zip
Btrfs: ignore non-FS inodes for send/receive
We have to ignore inode/space cache objects in send/receive. Reported-by: Alex Lyakas <alex.bolshoy.btrfs@gmail.com> Signed-off-by: Alexander Block <ablock84@googlemail.com>
Diffstat (limited to 'fs/btrfs/send.c')
-rw-r--r--fs/btrfs/send.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index db051d17b0be..a4011a9148fd 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -4287,6 +4287,11 @@ static int changed_cb(struct btrfs_root *left_root,
if (ret < 0)
goto out;
+ /* Ignore non-FS objects */
+ if (key->objectid == BTRFS_FREE_INO_OBJECTID ||
+ key->objectid == BTRFS_FREE_SPACE_OBJECTID)
+ goto out;
+
if (key->type == BTRFS_INODE_ITEM_KEY)
ret = changed_inode(sctx, result);
else if (key->type == BTRFS_INODE_REF_KEY)