The following changes since commit b098d6726bbfb94c06d6e1097466187afddae61f: Linux 3.14-rc8 (2014-03-24 19:31:17 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git tags/dm-3.15-changes for you to fetch changes up to 0596661f0a16d9d69bf1033320e70b6ff52b5e81: dm cache: fix a lock-inversion (2014-04-04 14:53:05 -0400) Please pull, thanks. Mike ---------------------------------------------------------------- . Fix dm-cache corruption caused by discard_block_size > cache_block_size . Fix a lock-inversion detected by LOCKDEP in dm-cache . Fix a dangling bio bug in the dm-thinp target's process_deferred_bios error path . Fix corruption due to non-atomic transaction commit which allowed a metadata superblock to be written before all other metadata was successfully written -- this is common to all targets that use the persistent-data library's transaction manager (dm-thinp, dm-cache and dm-era). . Various small cleanups in the DM core . Add the dm-era target which is useful for keeping track of which blocks were written within a user defined period of time called an 'era'. Use cases include tracking changed blocks for backup software, and partially invalidating the contents of a cache to restore cache coherency after rolling back a vendor snapshot. . Improve the on-disk layout of multithreaded writes to the dm-thin-pool by splitting the pool's deferred bio list to be a per-thin device list and then sorting that list using an rb_tree. The subsequent read throughput of the data written via multiple threads improved by ~70%. . Simplify the multipath target's handling of queuing IO by pushing requests back to the request queue rather than queueing the IO internally. ---------------------------------------------------------------- Hannes Reinecke (6): dm mpath: do not call pg_init when it is already running dm mpath: push back requests instead of queueing dm mpath: remove process_queued_ios() dm mpath: reduce memory pressure when requeuing dm mpath: remove map_io() dm-mpath: do not activate failed paths Heinz Mauelshagen (1): dm cache: remove remainder of distinct discard block size Joe Thornber (5): dm: add era target dm bitset: only flush the current word if it has been dirtied dm transaction manager: fix corruption due to non-atomic transaction commit dm: take care to copy the space map roots before locking the superblock dm cache: fix a lock-inversion Jose Castillo (1): dm mpath: print more useful warnings in multipath_message() Mike Snitzer (7): dm cache: prevent corruption caused by discard_block_size > cache_block_size dm table: add dm_table_run_md_queue_async dm mpath: remove extra nesting in map function dm thin: fix dangling bio in process_deferred_bios error path dm thin: simplify pool_is_congested dm thin: use per thin device deferred bio lists dm thin: sort the per thin deferred bios using an rb_tree Mikulas Patocka (3): dm: make dm_table_alloc_md_mempools static dm: remove dm_get_mapinfo dm: stop using bi_private Monam Agarwal (1): dm: use RCU_INIT_POINTER instead of rcu_assign_pointer in __unbind Documentation/device-mapper/era.txt | 108 ++ drivers/md/Kconfig | 11 + drivers/md/Makefile | 2 + drivers/md/dm-cache-block-types.h | 11 - drivers/md/dm-cache-metadata.c | 132 +- drivers/md/dm-cache-metadata.h | 15 +- drivers/md/dm-cache-target.c | 131 +- drivers/md/dm-era-target.c | 1746 ++++++++++++++++++++ drivers/md/dm-mpath.c | 219 +-- drivers/md/dm-table.c | 21 +- drivers/md/dm-thin-metadata.c | 80 +- drivers/md/dm-thin.c | 263 ++- drivers/md/dm.c | 24 +- drivers/md/dm.h | 2 +- drivers/md/persistent-data/dm-bitset.c | 10 +- drivers/md/persistent-data/dm-bitset.h | 1 + drivers/md/persistent-data/dm-block-manager.c | 15 +- drivers/md/persistent-data/dm-block-manager.h | 3 +- .../md/persistent-data/dm-transaction-manager.c | 5 +- .../md/persistent-data/dm-transaction-manager.h | 17 +- include/linux/device-mapper.h | 8 +- 21 files changed, 2346 insertions(+), 478 deletions(-) create mode 100644 Documentation/device-mapper/era.txt create mode 100644 drivers/md/dm-era-target.c -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel