Skip to content

Commit

Permalink
libdm: ensure first extent is always counted
Browse files Browse the repository at this point in the history
If FIEMAP returns a single extent after the first call, no extent
boundary is detected and the first extent is not counted by the
normal mechanism.

In this case, increment nr_extents at the same time the extent is
added to the region table, before returning.
  • Loading branch information
bmr-cymru committed Dec 13, 2016
1 parent fce7449 commit f4401fe
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion libdm/libdm-stats.c
Original file line number Diff line number Diff line change
Expand Up @@ -4286,8 +4286,10 @@ static uint64_t _stats_map_extents(struct dm_pool *mem,
* If the file only has a single extent, no boundary is ever
* detected to trigger addition of the first extent.
*/
if (fm_ext[i - 1].fe_logical == 0)
if (fm_ext[i - 1].fe_logical == 0) {
_stats_add_extent(mem, fm_pending, nr_extents);
nr_extents++;
}

fiemap->fm_start = (fm_ext[i - 1].fe_logical +
fm_ext[i - 1].fe_length);
Expand Down

0 comments on commit f4401fe

Please sign in to comment.