From abc4697d5ae65052d766effa9e3d254673fd3ac4 Mon Sep 17 00:00:00 2001 From: Rakesh Pandit Date: Sun, 27 Jul 2014 19:56:27 -0400 Subject: [PATCH] filefrag: fix -B option and extents calculation for FIBMAP 29758d2 broke -B option which is useful for filesystems not supporting FIEMAP. Also, fix extents calculation for -B which is broken since 2508eaa7. Signed-off-by: Rakesh Pandit Signed-off-by: Theodore Ts'o --- misc/filefrag.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/misc/filefrag.c b/misc/filefrag.c index 820821b..bb060b6 100644 --- a/misc/filefrag.c +++ b/misc/filefrag.c @@ -331,9 +331,10 @@ static int filefrag_fibmap(int fd, int blk_shift, int *num_extents, fm_ext.fe_physical = block * st->st_blksize; fm_ext.fe_length = 0; (*num_extents)++; - } else if (verbose && last_block && (block != last_block + 1)) { - printf("Discontinuity: Block %ld is at %lu (was %lu)\n", - i, block, last_block + 1); + } else if (last_block && (block != last_block + 1)) { + if (verbose) + printf("Discontinuity: Block %ld is at %lu (was " + "%lu)\n", i, block, last_block + 1); (*num_extents)++; } fm_ext.fe_length += st->st_blksize; @@ -439,7 +440,7 @@ static int frag_report(const char *filename) expected = 0; } - if (rc < 0) { + if (force_bmap || rc < 0) { expected = filefrag_fibmap(fd, blk_shift, &num_extents, &st, numblocks, is_ext2); if (expected < 0) { -- 1.8.3.1