linux/drivers/md/persistent-data
Joe Thornber 249fbae374 dm btree: add ref counting ops for the leaves of top level btrees
commit b0dc3c8bc1 upstream.

When using nested btrees, the top leaves of the top levels contain
block addresses for the root of the next tree down.  If we shadow a
shared leaf node the leaf values (sub tree roots) should be incremented
accordingly.

This is only an issue if there is metadata sharing in the top levels.
Which only occurs if metadata snapshots are being used (as is possible
with dm-thinp).  And could result in a block from the thinp metadata
snap being reused early, thus corrupting the thinp metadata snap.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-10-22 14:37:50 -07:00
..
dm-array.c dm array: fix a reference counting bug in shadow_ablock 2013-12-20 07:45:11 -08:00
dm-array.h dm persistent data: add transactional array 2013-03-01 22:45:51 +00:00
dm-bitset.c dm persistent data: add bitset 2013-03-01 22:45:51 +00:00
dm-bitset.h dm persistent data: add bitset 2013-03-01 22:45:51 +00:00
dm-block-manager.c dm transaction manager: fix corruption due to non-atomic transaction commit 2014-05-13 13:59:45 +02:00
dm-block-manager.h dm transaction manager: fix corruption due to non-atomic transaction commit 2014-05-13 13:59:45 +02:00
dm-btree-internal.h dm btree: add ref counting ops for the leaves of top level btrees 2015-10-22 14:37:50 -07:00
dm-btree-remove.c dm btree: add ref counting ops for the leaves of top level btrees 2015-10-22 14:37:50 -07:00
dm-btree-spine.c dm btree: add ref counting ops for the leaves of top level btrees 2015-10-22 14:37:50 -07:00
dm-btree.c dm btree: add ref counting ops for the leaves of top level btrees 2015-10-22 14:37:50 -07:00
dm-btree.h dm persistent data: add btree_walk 2013-03-01 22:45:50 +00:00
dm-persistent-data-internal.h dm: add persistent data library 2011-10-31 20:19:11 +00:00
dm-space-map-common.c dm space map common: make sure new space is used during extend 2014-02-13 13:48:01 -08:00
dm-space-map-common.h dm persistent data: only commit space map if index changed 2012-07-27 15:08:06 +01:00
dm-space-map-disk.c dm persistent data: add threshold callback to space map 2013-05-10 14:37:20 +01:00
dm-space-map-disk.h dm: add persistent data library 2011-10-31 20:19:11 +00:00
dm-space-map-metadata.c dm space map metadata: fix sm_bootstrap_get_nr_blocks() 2015-01-08 09:58:15 -08:00
dm-space-map-metadata.h dm: add persistent data library 2011-10-31 20:19:11 +00:00
dm-space-map.h dm persistent data: add threshold callback to space map 2013-05-10 14:37:20 +01:00
dm-transaction-manager.c dm transaction manager: fix corruption due to non-atomic transaction commit 2014-05-13 13:59:45 +02:00
dm-transaction-manager.h dm transaction manager: fix corruption due to non-atomic transaction commit 2014-05-13 13:59:45 +02:00
Kconfig dm persistent data: remove CONFIG_EXPERIMENTAL 2013-03-01 22:45:46 +00:00
Makefile dm persistent data: add bitset 2013-03-01 22:45:51 +00:00