dm persistent data: remove space map ref_count entries if redundant
authorJoe Thornber <ejt@redhat.com>
Wed, 28 Mar 2012 17:41:27 +0000 (18:41 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Wed, 28 Mar 2012 17:41:27 +0000 (18:41 +0100)
commit71fd5ae25d88841c08d5bbea90c0f0a12ca05509
tree763ec9657bd25e4d42f1f6774faa65166364eede
parent905e51b39a5558706a6ed883fe104de3d417050b
dm persistent data: remove space map ref_count entries if redundant

Save space by removing entries from the space map ref_count tree if
they're no longer needed.

Ref counts are stored in two places: a bitmap if the ref_count is
below 3, or a btree of uint32_t if 3 or above.

When a ref_count that was above 3 drops below we can remove it from
the tree and save some metadata space.  This removal was commented out
before because I was unsure why this was causing under-populated btree
nodes.  Earlier patches have fixed this issue.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/persistent-data/dm-space-map-common.c