From: Bryn M. Reeves Date: Tue, 13 Dec 2016 21:36:11 +0000 (+0000) Subject: libdm: ensure first extent is always counted X-Git-Tag: v2_02_169~564 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=f4401fe351f63679ae8f4bab448a9283fb631a4a;p=lvm2.git libdm: ensure first extent is always counted 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. --- diff --git a/libdm/libdm-stats.c b/libdm/libdm-stats.c index 02a30dc4e..8d202d21c 100644 --- a/libdm/libdm-stats.c +++ b/libdm/libdm-stats.c @@ -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);