[dm-devel] [git pull] device mapper changes for 3.15

Mike Snitzer snitzer at redhat.com
Fri Apr 4 19:10:54 UTC 2014


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




More information about the dm-devel mailing list