summaryrefslogtreecommitdiff
path: root/fs/btrfs/send.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-10-20 10:18:16 +0200
committerIngo Molnar <mingo@kernel.org>2015-10-20 10:18:16 +0200
commit6af597de62a365dfec6021b9796aa302044e7cc3 (patch)
tree23e365cc4a4e6dff940f5acbb466edbe28160d68 /fs/btrfs/send.c
parent558a65bc31a0c7811b34dad32f51f47c55a40000 (diff)
parent5aa5050787f449e7eaef2c5ec93c7b357aa7dcdc (diff)
Merge branch 'sched/urgent' into sched/core, to pick up fixes and resolve conflicts
Conflicts: kernel/sched/fair.c Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'fs/btrfs/send.c')
-rw-r--r--fs/btrfs/send.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index aa72bfd28f7d..a739b825bdd3 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -1920,10 +1920,12 @@ static int did_overwrite_ref(struct send_ctx *sctx,
/*
* We know that it is or will be overwritten. Check this now.
* The current inode being processed might have been the one that caused
- * inode 'ino' to be orphanized, therefore ow_inode can actually be the
- * same as sctx->send_progress.
+ * inode 'ino' to be orphanized, therefore check if ow_inode matches
+ * the current inode being processed.
*/
- if (ow_inode <= sctx->send_progress)
+ if ((ow_inode < sctx->send_progress) ||
+ (ino != sctx->cur_ino && ow_inode == sctx->cur_ino &&
+ gen == sctx->cur_inode_gen))
ret = 1;
else
ret = 0;