Revision 1: [upstream] Small tidy-ups: - Use unsigned consistently - Simplify crypt_iv_plain memset - Use DMEMIT macro Signed-Off-By: Alasdair G Kergon Signed-Off-By: Christophe Saout Revision 2: [upstream] Create crypt_iv_operations structure with generator method and move the plain iv generator into this structure. Optionally accept an extended syntax: -- 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 Signed-Off-By: Christophe Saout 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" 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 Signed-Off-By: Christophe Saout Signed-Off-By: Fruhwirth Clemens 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 From: Lars Marowsky-Bree Revision 5: [upstream] Remove duplicate kfree in dm_register_target error path. Signed-Off-By: Alasdair G Kergon Revision 6: Use %llu not %Lu in sscanf/printf format strings. Signed-Off-By: Alasdair G Kergon 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 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.