Revision 1: kgdb Revision 2: When setting the size of a Device-Mapper device in the gendisk entry, also try to set the size of the corresponding block_device entry's inode. This is necessary to allow online device/filesystem resizing to work correctly. [Kevin Corry] Revision 3: The dm table size is always known in advance, so we can specify it in dm_table_create(), rather than relying on dynamic resizing. Revision 4: Make the version-4 ioctl interface the default kernel configuration option. Revision 5: Experimental version of the snapshot and mirror targets for 2.6. Revision 6: Take a space out of a slab name. Revision 7: take note of the tio->io field before freeing tio. Revision 8: A blk_put_queue() was missing on the error path of alloc_dev(). Revision 9: whitespace Revision 10: Set the split io size for the snapshot target. Revision 11: Enable the new code that checks that an exception isn't already being copied. Revision 12: Recheck that the exception hasn't entered the pending table by another thread. Revision 13: Set the ti->split_io field for the origin to the smallest chunk-size of its snapshots. This is done each time the origin is resumed, since new snapshots (with smaller chunk-sizes) could have been added. [Kevin Corry] Revision 14: In the "else" section of __clone_and_map(), we're splitting a page from the bio into two pages and mapping each part separately. Therefore, we need another tio structure to track the second part of the page. [Kevin Corry] Revision 15: In order to properly build snapshot as its own kernel module, dm-snapshot.c and dm-snapshot.h must be renamed to dm-snap.c and dm-snap.h. The dm_vcalloc function must also be exported from dm-table.c so the snapshot module can find it. [Kevin Corry]