From 94ded6c16bdcc77b43caaa151bd7afa55c5d3cf1 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 16 Dec 2010 19:34:24 -0500 Subject: [PATCH] libext2fs: fix ref_offset callback with sparse files in ext2fs_block_iterate2() Addresses-Sourceforge-Bug: 3081087 Reported-by: vmo@users.sourceforge.net Signed-off-by: "Theodore Ts'o" --- lib/ext2fs/block.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ext2fs/block.c b/lib/ext2fs/block.c index 07f77e9..4054a07 100644 --- a/lib/ext2fs/block.c +++ b/lib/ext2fs/block.c @@ -104,7 +104,7 @@ static int block_iterate_ind(blk_t *ind_block, blk_t ref_block, } else { for (i = 0; i < limit; i++, ctx->bcount++, block_nr++) { if (*block_nr == 0) - continue; + goto skip_sparse; flags = (*ctx->func)(ctx->fs, block_nr, ctx->bcount, *ind_block, offset, ctx->priv_data); @@ -113,6 +113,7 @@ static int block_iterate_ind(blk_t *ind_block, blk_t ref_block, ret |= BLOCK_ABORT; break; } + skip_sparse: offset += sizeof(blk_t); } } -- 1.8.3.1