]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
Merge tag 'for-5.3/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/devic...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 13 Jul 2019 22:24:31 +0000 (15:24 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 13 Jul 2019 22:24:31 +0000 (15:24 -0700)
Pull device mapper updates from Mike Snitzer:

 - Add encrypted byte-offset initialization vector (eboiv) to DM crypt.

 - Add optional discard features to DM snapshot which allow freeing
   space from a DM device whose free space was exhausted.

 - Various small improvements to use struct_size() and kzalloc().

 - Fix to check if DM thin metadata is in fail_io mode before attempting
   to update the superblock to set the needs_check flag. Otherwise the
   DM thin-pool can hang.

 - Fix DM bufio shrinker's potential for ABBA recursion deadlock with DM
   thin provisioning on loop usecase.

* tag 'for-5.3/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
  dm bufio: fix deadlock with loop device
  dm snapshot: add optional discard support features
  dm crypt: implement eboiv - encrypted byte-offset initialization vector
  dm crypt: remove obsolete comment about plumb IV
  dm crypt: wipe private IV struct after key invalid flag is set
  dm integrity: use kzalloc() instead of kmalloc() + memset()
  dm: update stale comment in end_clone_bio()
  dm log writes: fix incorrect comment about the logged sequence example
  dm log writes: use struct_size() to calculate size of pending_block
  dm crypt: use struct_size() when allocating encryption context
  dm integrity: always set version on superblock update
  dm thin metadata: check if in fail_io mode when setting needs_check

1  2 
Documentation/device-mapper/snapshot.rst

index 4c53304e72f1b042fdab9b034771017a45f527d0,1810833f6dc6489c695d4dc40f0127a51476dc62..ccdd8b587a74f6869e3e7d321c7b19b30a2a7476
@@@ -31,7 -30,8 +31,8 @@@ original data will be saved in the <CO
  its visible content unchanged, at least until the <COW device> fills up.
  
  
 -*) snapshot <origin> <COW device> <persistent?> <chunksize>
 +-  snapshot <origin> <COW device> <persistent?> <chunksize>
+    [<# feature args> [<arg>]*]
  
  A snapshot of the <origin> block device is created. Changed chunks of
  <chunksize> sectors will be stored on the <COW device>.  Writes will
@@@ -54,8 -54,23 +55,23 @@@ When loading or unloading the snapshot 
  snapshot-origin or snapshot-merge target must be suspended. A failure to
  suspend the origin target could result in data corruption.
  
+ Optional features:
  
- * snapshot-merge <origin> <COW device> <persistent> <chunksize>
+    discard_zeroes_cow - a discard issued to the snapshot device that
+    maps to entire chunks to will zero the corresponding exception(s) in
+    the snapshot's exception store.
+    discard_passdown_origin - a discard to the snapshot device is passed
+    down to the snapshot-origin's underlying device.  This doesn't cause
+    copy-out to the snapshot exception store because the snapshot-origin
+    target is bypassed.
+    The discard_passdown_origin feature depends on the discard_zeroes_cow
+    feature being enabled.
 -* snapshot-merge <origin> <COW device> <persistent> <chunksize>
 -  [<# feature args> [<arg>]*]
++-  snapshot-merge <origin> <COW device> <persistent> <chunksize>
++   [<# feature args> [<arg>]*]
  
  takes the same table arguments as the snapshot target except it only
  works with persistent snapshots.  This target assumes the role of the