2014-04-04 19:11:00

by Mike Snitzer

[permalink] [raw]
Subject: [git pull] device mapper changes for 3.15

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