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;
+ } 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)
--
1.7.3.4
--
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