fiemap: Fix semantics of max_extents (-n arguments)
Currently the semantics of the -n argument are a bit idiosyncratic. We want the
argument to be the limit of extents that are going to be output by the tool. This
is clearly broken now as evident from the following example on a fragmented file:
xfs_io -c "fiemap -v -n 5" test-dir/fragmented-file
test-dir/fragmented-file:
EXT: FILE-OFFSET BLOCK-RANGE TOTAL FLAGS
0: [0..15]: hole 16
1: [16..23]:
897847296..
897847303 8 0x0
2: [24..31]: hole 8
3: [32..39]:
897851392..
897851399 8 0x0
So we want at most 5 extents printed, yet we get 4. So we always print n - 1
extents.
With this modification the output looks like:
xfs_io -c "fiemap -v -n 5" test-dir/fragmented-file
test-dir/fragmented-file:
EXT: FILE-OFFSET BLOCK-RANGE TOTAL FLAGS
0: [0..15]: hole 16
1: [16..23]:
897847296..
897847303 8 0x0
2: [24..31]: hole 8
3: [32..39]:
897851392..
897851399 8 0x0
4: [40..47]: hole 8
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
[sandeen: fix initialization of max_extents]
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>