• Linus Torvalds's avatar
    Merge tag 'dm-4.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 7a771cea
    Linus Torvalds authored
    Pull device mapper updates from Mike Snitzer:
    
     - Fix dm-raid transient device failure processing and other smaller
       tweaks.
    
     - Add journal support to the DM raid target to close the 'write hole'
       on raid 4/5/6.
    
     - Fix dm-cache corruption, due to rounding bug, when cache exceeds 2TB.
    
     - Add 'metadata2' feature to dm-cache to separate the dirty bitset out
       from other cache metadata. This improves speed of shutting down a
       large cache device (which implies writing out dirty bits).
    
     - Fix a memory leak during dm-stats data structure destruction.
    
     - Fix a DM multipath round-robin path selector performance regression
       that was caused by less precise balancing across all paths.
    
     - Lastly, introduce a DM core fix for a long-standing DM snapshot
       deadlock that is rooted in the complexity of the device stack used in
       conjunction with block core maintaining bios on current->bio_list to
       manage recursion in generic_make_request(). A more comprehensive fix
       to block core (and its hook in the cpu scheduler) would be wonderful
       but this DM-specific fix is pragmatic considering how difficult it
       has been to make progress on a generic fix.
    
    * tag 'dm-4.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (22 commits)
      dm: flush queued bios when process blocks to avoid deadlock
      dm round robin: revert "use percpu 'repeat_count' and 'current_path'"
      dm stats: fix a leaked s->histogram_boundaries array
      dm space map metadata: constify dm_space_map structures
      dm cache metadata: use cursor api in blocks_are_clean_separate_dirty()
      dm persistent data: add cursor skip functions to the cursor APIs
      dm cache metadata: use dm_bitset_new() to create the dirty bitset in format 2
      dm bitset: add dm_bitset_new()
      dm cache metadata: name the cache block that couldn't be loaded
      dm cache metadata: add "metadata2" feature
      dm cache metadata: use bitset cursor api to load discard bitset
      dm bitset: introduce cursor api
      dm btree: use GFP_NOFS in dm_btree_del()
      dm space map common: memcpy the disk root to ensure it's arch aligned
      dm block manager: add unlikely() annotations on dm_bufio error paths
      dm cache: fix corruption seen when using cache > 2TB
      dm raid: cleanup awkward branching in raid_message() option processing
      dm raid: use mddev rather than rdev->mddev
      dm raid: use read_disk_sb() throughout
      dm raid: add raid4/5/6 journaling support
      ...
    7a771cea
dm-cache-target.c 94.3 KB