Revision 1:
  [upstream]
  
  Small tidy-ups:
  - Use unsigned consistently
  - Simplify crypt_iv_plain memset
  - Use DMEMIT macro
   
  Signed-Off-By: Alasdair G Kergon <agk@redhat.com>
  Signed-Off-By: Christophe Saout <christophe@saout.de>

Revision 2:
  [upstream]
  
  Create crypt_iv_operations structure with generator method
  and move the plain iv generator into this structure.
   
  Optionally accept an extended <sector format> syntax:
    <cipher>-<chaining mode>-<iv mode>
  
  This also makes it ready to support chaining modes other than CBC 
  mode, such as CMC (not implemented in cryptoapi yet), 
  The problems outlined by Adam J. Richter in
    http://article.gmane.org/gmane.linux.kernel.device-mapper.dm-crypt/454
  would be fixed by switching to CMC chaining mode. 
  
  Example of a valid target line:
    0 200 crypt aes-cbc-plain 00000000000000000000000000000000 0 /dev/loop/5 0
   
  Signed-Off-By: Alasdair G Kergon <agk@redhat.com>
  Signed-Off-By: Christophe Saout <christophe@saout.de>

Revision 3:
  [upstream]
  
  This patch adds a new IV mode, I baptise ''encrypted sector|salt IV''
  I describe ESSIV in
    http://article.gmane.org/gmane.linux.kernel.device-mapper.dm-crypt/472
  
  To use ESSIV, set the ivmode (using the new syntax) to "essiv:<hash>".
  "hash" should be a valid cryptoapi hash.
  
  This, for example, is a valid dm-target line:
  
  0 200 crypt aes-cbc-essiv:sha256 00000000000000000000000000000000 0 /dev/loop/5
  0
   
  Signed-Off-By: Alasdair G Kergon <agk@redhat.com>
  Signed-Off-By: Christophe Saout <christophe@saout.de>
  Signed-Off-By: Fruhwirth Clemens <clemens@endorphin.org>

Revision 4:
  [upstream]
  
  Remove stray semicolon.
  
  I've found the most severe bug report ever! ;-)
  
  You got a stray semicolon in dm.c, around :809
  +       atomic_inc(&md->event_nr);;
  
  Signed-Off-By: Alasdair G Kergon <agk@redhat.com>
  From: Lars Marowsky-Bree <lmb@suse.de>

Revision 5:
  [upstream]
  
  Remove duplicate kfree in dm_register_target error path.
  
  Signed-Off-By: Alasdair G Kergon <agk@redhat.com>

Revision 6:
  Use %llu not %Lu in sscanf/printf format strings.
  
  Signed-Off-By: Alasdair G Kergon <agk@redhat.com>

Revision 7:
  DM_TARGET_MSG ioctl to send a message to a dm target instance

Revision 8:
  Ioctl interface accepts refs by device number, not just name or uuid.
  
  Signed-Off-By: Alasdair G Kergon <agk@redhat.com>

Revision 9:
  Multipath

Revision 10:
  Fix missing error path in path selector up_read(&_ps_lock).

Revision 11:
  Round-robin path selector.

Revision 12:
  Add outline hardware handler framework.

Revision 13:
  Allow PGs to be bypassed.

Revision 14:
  Clear current path after path reinstatement or bypass flag change.

Revision 15:
  Add endio error handler.

Revision 16:
  Pass mpio into map_io()

Revision 17:
  Change map_io success return code from 0 to 1 [=> bio successfully remapped]

Revision 18:
  Changed mpath 'failed_ios' to 'queued_ios' etc. ready for more general use.

Revision 19:
  Add initialising_pg flag and remap ios when processing queue.

Revision 20:
  Add pg_init capability.

Revision 21:
  dm_pg_init_complete

Revision 22:
  Add PG state to status.

Revision 23:
  Factor out duplicate nr_priority_groups emit from status.

Revision 24:
  Add hw_handler to status.

Revision 25:
  Error handler default is to retry - else use DM_ERROR_IO.
  Rename error handler to dm_scsi_err_handler.

Revision 26:
  Rename dispatch_queued to process_queued_ios etc.

Revision 27:
  Require pg_init_fn to use callback when complete.

Revision 28:
  Trigger event on path bypass.

Revision 29:
  Move pg_init_fn to process_queued_io.

Revision 30:
  Also trigger event on reinstate.

Revision 31:
  Try bypassed PGs too before failing.

Revision 32:
  Tell pg_init_fn whether PG is already bypassed, and if it is and the
  function fails, insist that the path gets failed.

Revision 33:
  rename bypass to bypassed

Revision 34:
  Avoid bypassed null pointer risk in process_queued_ios.

Revision 35:
  Outline EMC hw_handler.

Revision 36:
  Flakey target.

Revision 37:
  mm kgdb

Revision 38:
  Test for hwh->type not hwh.

Revision 39:
  Add status function to include repeat count in table output.

Revision 40:
  Fix typo in hw_handler status parameters.

Revision 41:
  Fix another hwh status case

Revision 42:
  Fix enable/disable_group (swapped).

Revision 43:
  Append _path to reinstate/fail messages.

Revision 44:
  Use macro for fixed strnicmp string length.

Revision 45:
  Add queue/fail_if_no_paths messages & functionality.

Revision 46:
  Drop the 's' and add queue_if_no_path to table output.

Revision 47:
  Add queue size to status info.

Revision 48:
  Fix counting in last checkin.