linux-xiaomi-chiron/drivers/md/persistent-data
Joe Thornber 5faafc77f7 dm space maps: don't reset space map allocation cursor when committing
Current commit code resets the place where the search for free blocks
will begin back to the start of the metadata device.  There are a couple
of repercussions to this:

- The first allocation after the commit is likely to take longer than
  normal as it searches for a free block in an area that is likely to
  have very few free blocks (if any).

- Any free blocks it finds will have been recently freed.  Reusing them
  means we have fewer old copies of the metadata to aid recovery from
  hardware error.

Fix these issues by leaving the cursor alone, only resetting when the
search hits the end of the metadata device.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2021-06-04 12:07:21 -04:00
..
dm-array.c dm persistent data: add cursor skip functions to the cursor APIs 2017-02-16 13:12:50 -05:00
dm-array.h dm persistent data: add cursor skip functions to the cursor APIs 2017-02-16 13:12:50 -05:00
dm-bitset.c dm persistent data: add cursor skip functions to the cursor APIs 2017-02-16 13:12:50 -05:00
dm-bitset.h dm persistent data: add cursor skip functions to the cursor APIs 2017-02-16 13:12:50 -05:00
dm-block-manager.c dm thin metadata: Fix use-after-free in dm_bm_set_read_only 2020-09-02 13:38:40 -04:00
dm-block-manager.h dm block manager: remove an unused argument from dm_block_manager_create() 2017-04-27 17:08:41 -04:00
dm-btree-internal.h dm persistent data: packed struct should have an aligned() attribute too 2021-04-19 12:48:12 -04:00
dm-btree-remove.c dm btree: increase rebalance threshold in __rebalance2() 2019-12-05 15:27:52 -05:00
dm-btree-spine.c dm btree spine: remove paranoid node_check call in node_prep_for_write() 2021-04-19 12:47:57 -04:00
dm-btree.c dm btree: improve btree residency 2021-06-04 12:07:20 -04:00
dm-btree.h dm persistent data: add cursor skip functions to the cursor APIs 2017-02-16 13:12:50 -05: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: fix division bug in sm_ll_find_free_block() 2021-04-19 12:48:13 -04:00
dm-space-map-common.h dm persistent data: packed struct should have an aligned() attribute too 2021-04-19 12:48:12 -04:00
dm-space-map-disk.c dm space maps: don't reset space map allocation cursor when committing 2021-06-04 12:07:21 -04: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 maps: don't reset space map allocation cursor when committing 2021-06-04 12:07:21 -04: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 btree: improve btree residency 2021-06-04 12:07:20 -04:00
dm-transaction-manager.h dm btree: improve btree residency 2021-06-04 12:07:20 -04:00
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00