diff options
author | Bryn M. Reeves <bmr@redhat.com> | 2016-12-12 22:49:31 +0000 |
---|---|---|
committer | Bryn M. Reeves <bmr@redhat.com> | 2016-12-13 09:09:29 +0000 |
commit | 138e4336fd8422623df7daa362b98a4899f5fbec (patch) | |
tree | bb53764b6f5e07a4a49291026c694bb1d90acdab | |
parent | 93f420caf4e58f468919f40a9f3f9c20157affd0 (diff) | |
download | lvm2-138e4336fd8422623df7daa362b98a4899f5fbec.tar.gz |
libdm: fix region overlap tests
-rw-r--r-- | libdm/libdm-stats.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libdm/libdm-stats.c b/libdm/libdm-stats.c index 56a38f27e..8c0428ea8 100644 --- a/libdm/libdm-stats.c +++ b/libdm/libdm-stats.c @@ -3880,6 +3880,12 @@ static int _stats_group_check_overlap(const struct dm_stats *dms, i++; } + /* A single region cannot overlap itself. */ + if (i == 1) { + dm_pool_free(dms->mem, map); + return 1; + } + /* sort by extent.start */ qsort(map, count, sizeof(*map), _extent_start_compare); @@ -3915,7 +3921,7 @@ merge: goto merge; dm_pool_free(dms->mem, map); - return overlap; + return (overlap == 0); } static void _stats_copy_histogram_bounds(struct dm_histogram *to, |