Revision 1: -mm1 Revision 2: Add an endio method to targets. This method is allowed to request another shot at failed ios (think multipath). Context can be passed between the map method and the endio method. Revision 3: List targets ioctl. [Patrick Caulfield] Revision 4: Remove the version-1 ioctl interface. Revision 5: No need to check the parameters for DM_LIST_VERSIONS_CMD Revision 6: Lift min_not_zero to dm.h Revision 7: Add dm-daemon. Revision 8: Add dm-io. Revision 9: Add kcopyd. Revision 10: Snapshot target Revision 11: Mirror target Revision 12: Multipath target Revision 13: Flakey target Revision 14: Audit for list_for_each_*entry* Revision 15: Zero m->current_path if it has failed, so that we choose a new one more quickly. Revision 16: The snapshot destructor shouldn't be triggering an event, this code must date from before the reference counting of tables was put in. Revision 17: Fill in missing queue limitations when table is complete instead of enforcing the "default" limits on every dm device. Problem noticed by Mike Christie. [Christophe Saout] Revision 18: Change _mpath_lock from a spinlock to a semaphore. [Kevin Corry] Revision 19: Can't call dm_table_event() while holding a spinlock with interrupts disabled. [Kevin Corry] Revision 20: Strip out path testing, we'll do this from userland instead. Revision 21: Use work_queues rather than dm-daemon. [Mike Christie/Joe Thornber] Revision 22: Remove obvious comment. Revision 23: Comment MPATH_MIN_IO. Revision 24: Work-queue names must be less than 10 characters. Revision 25: initialise the bvec dp properly. Revision 26: Add map_info to dm-crypt map function. Merge this patch with endio patch