-------- Original Message --------
Subject: [PATCH 12/18] btrfs restore: check progress of file restoration
From: <mwilck@xxxxxxxx>
To: <linux-btrfs@xxxxxxxxxxxxxxx>
Date: 2014年12月11日 04:51
From: Martin Wilck <mwilck@xxxxxxxx>
extents should be ordered by file offset. Expect no overlaps,
and report holes.
Signed-off-by: Martin Wilck <mwilck@xxxxxxxx>
---
cmds-restore.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/cmds-restore.c b/cmds-restore.c
index 004c82e..80081b8 100644
--- a/cmds-restore.c
+++ b/cmds-restore.c
@@ -739,6 +739,14 @@ static int copy_file(struct btrfs_root *root, int fd, struct btrfs_key *key,
ret = -1;
goto set_size;
}
+ if (found_key.offset < next_pos) {
+ fprintf(stderr, "extent overlap, %llu < %llu\n",
+ found_key.offset, next_pos);
+ ret = -1;
+ goto set_size;
Would it be better to continue recovery?
Even overlap, later extents may still be OK. What about just skip to
next extent?
Thanks,
Qu
+ } else if (found_key.offset > next_pos)
+ fprintf(stderr, "hole at %llu (%llu bytes)\n",
+ next_pos, found_key.offset - next_pos);
bytes_written = 0ULL;
if (extent_type == BTRFS_FILE_EXTENT_PREALLOC)
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html