linux/drivers/md/persistent-data
Mikulas Patocka 86bad0c707 dm bufio: store stacktrace in buffers to help find buffer leaks
The option DM_DEBUG_BLOCK_STACK_TRACING is moved from persistent-data
directory to device mapper directory because it will now be used by
persistent-data and bufio.  When the option is enabled, each bufio buffer
stores the stacktrace of the last dm_bufio_get(), dm_bufio_read() or
dm_bufio_new() call that increased the hold count to 1.  The buffer's
stacktrace is printed if the buffer was not released before the bufio
client is destroyed.

When DM_DEBUG_BLOCK_STACK_TRACING is enabled, any bufio buffer leaks are
considered warnings - i.e. the kernel continues afterwards.  If not
enabled, buffer leaks are considered BUGs and the kernel with crash.
Reasoning on this disposition is: if we only ever warned on buffer leaks
users would generally ignore them and the problematic code would never
get fixed.

Successfully used to find source of bufio leaks fixed with commit
fce079f63c3 ("dm btree: fix bufio buffer leaks in dm_btree_del() error
path").

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2015-12-10 10:38:58 -05:00
..
dm-array.c dm persistent data: eliminate unnecessary return values 2015-10-31 19:06:02 -04:00
dm-array.h dm persistent data: add transactional array 2013-03-01 22:45:51 +00:00
dm-bitset.c dm bitset: only flush the current word if it has been dirtied 2014-03-27 16:56:23 -04:00
dm-bitset.h dm bitset: only flush the current word if it has been dirtied 2014-03-27 16:56:23 -04:00
dm-block-manager.c dm block manager: cleanup code that prints stacktrace 2015-12-10 10:38:56 -05:00
dm-block-manager.h dm persistent data: eliminate unnecessary return values 2015-10-31 19:06:02 -04:00
dm-btree-internal.h dm persistent data: eliminate unnecessary return values 2015-10-31 19:06:02 -04:00
dm-btree-remove.c - Revert a dm-multipath change that caused a regression for unprivledged 2015-11-04 21:19:53 -08:00
dm-btree-spine.c dm persistent data: eliminate unnecessary return values 2015-10-31 19:06:02 -04:00
dm-btree.c dm btree: fix bufio buffer leaks in dm_btree_del() error path 2015-12-10 10:30:18 -05:00
dm-btree.h dm thin metadata: fix bug in dm_thin_remove_range() 2015-12-02 13:26:49 -05:00
dm-persistent-data-internal.h
dm-space-map-common.c dm persistent data: eliminate unnecessary return values 2015-10-31 19:06:02 -04: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 space map disk: fix sm_disk_count_is_more_than_one() 2015-02-13 19:32:58 -05:00
dm-space-map-disk.h
dm-space-map-metadata.c dm space map metadata: fix ref counting bug when bootstrapping a new space map 2015-12-09 13:27:25 -05:00
dm-space-map-metadata.h dm thin: allow metadata space larger than supported to go unused 2014-02-27 11:49:08 -05: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 persistent data: eliminate unnecessary return values 2015-10-31 19:06:02 -04:00
dm-transaction-manager.h dm persistent data: eliminate unnecessary return values 2015-10-31 19:06:02 -04:00
Kconfig dm bufio: store stacktrace in buffers to help find buffer leaks 2015-12-10 10:38:58 -05:00
Makefile dm persistent data: add bitset 2013-03-01 22:45:51 +00:00