Revision 1:
  -mm1

Revision 2:
  Export dm_vcalloc()

Revision 3:
  Lift to_bytes() and to_sectors() into dm.h

Revision 4:
  We can get rid of dm_deferred_io in dm.c. We are doing it elsewhere,
  others are doing it, so let's also do it.
  
  We can save a call to kmalloc (which can even fail). The bio->bi_next
  field can be used by us as long as we own it, it is set NULL before
  it is passed down to the next request queue.
  
  [Chripstophe Saout]

Revision 5:
  Make sure that we maintain ordering when deferring bios.

Revision 6:
  Tidy up the error path for alloc_dev()

Revision 7:
  With 32 bit sector_t the block device size _in bytes_ is also cut to
  32 bit in __set_size when the block device is mount (a filesystem
  mounted). The argument should be cast to loff_t before expanding the
  sector count to a byte count and calling i_size_write.
  
  [Christophe Saout]

Revision 8:
  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 9:
  List targets ioctl.  [Patrick Caulfield]

Revision 10:
  For some reason dm_table_create() was allocating GFP_NOIO rather than
  GFP_KERNEL.

Revision 11:
  Add sanity check to dm_table_add_target() against zero length targets.  [Christophe Saout]

Revision 12:
  Remove redundant spin lock in dec_pending()

Revision 13:
  Remove the version-1 ioctl interface.

Revision 14:
  No need to check the parameters for DM_LIST_VERSIONS_CMD

Revision 15:
  Lift min_not_zero to dm.h

Revision 16:
  Add dm-daemon.

Revision 17:
  Add dm-io.

Revision 18:
  Add kcopyd.

Revision 19:
  Snapshot target

Revision 20:
  Mirror target

Revision 21:
  Multipath target

Revision 22:
  Crypt target

Revision 23:
  Flakey target

Revision 24:
  I just noticed that bio_clone copies the BIO_SEG_VALID bit from the
  original bio when it was set. When we modify bi_idx or bi_vcnt
  afterwards the segment counts are invalid and the bit must be dropped
  (though it is fairly unlikely that it has already been set).
  [Christophe Saout]

Revision 25:
  Audit for list_for_each_*entry*

Revision 26:
  Zero m->current_path if it has failed, so that we choose a new one
  more quickly.

Revision 27:
  The snapshot destructor shouldn't be triggering an event, this code
  must date from before the reference counting of tables was put in.

Revision 28:
  Fix a dm-crypt compile warning on x86-64 with gcc 3.3.1.
  
  [Andreas Steinmetz]

Revision 29:
  Fix IV generation type returned in dm-crypt status method.
  
  [Christophe Saout]

Revision 30:
  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 31:
  Change _mpath_lock from a spinlock to a semaphore.  [Kevin Corry]

Revision 32:
  Can't call dm_table_event() while holding a spinlock with interrupts
  disabled.  [Kevin Corry]

Revision 33:
  Strip out path testing, we'll do this from userland instead.

Revision 34:
  Use work_queues rather than dm-daemon.  [Mike Christie/Joe Thornber]

Revision 35:
  Remove obvious comment.

Revision 36:
  Comment MPATH_MIN_IO.

Revision 37:
  Work-queue names must be less than 10 characters.

