Revision 1: Documentation for the linear target. The last 2 scripts still need testing. Revision 2: dm-ioctl.c: Fix an OB1 error when calculating an output buffer size, that could cause a missing null termininator in the 'list devices' ioctl results. [Steffan Paletta] Revision 3: In __map_bio(), if the target returns an error while mapping the I/O, the cloned bio needs to be freed. Revision 4: Replace dm_[add|remove]_wait_queue() with dm_wait_event(). Some testing of DM multipath has turned up a problem with the DEVICE_WAIT command. In the tests, while performing a DEVICE_WAIT on a multipath device, the command sometimes returns immediately, even though the event-number is correct and no path-failure has occurred to trigger an event. The problem was tracked down to the call to schedule() in dev_wait(), which would return even though it was not woken up by a DM table event. This patch moves the responsibility for waiting from the ioctl interface into the core driver, and uses wait_event_interruptible() instead of relying on wait-queues and schedule(). Revision 5: Multipath target Revision 6: dm-io Revision 7: kcopyd Revision 8: Force kcopyd to be single-threaded. For now, snapshotting cannot handle multiple kcopyd threads. When we determine the correct way to make snapshot safe for a multithreaded kcopyd, this patch can be removed. Revision 9: snapshot target. Revision 10: Snapshot: Make calc_max_buckets return a constant 2M for now (need a proper fix for this). [Chris Mason] Revision 11: dm-exception-store: remove dead code. [Dave Olien] Revision 12: mirror target. Revision 13: Mirror: Exchange slow bit-by-bit count to use hweight32 to count bits per uint32_t. [AJ Lewis] Revision 14: Mirror: flush the log as soon as a region is updated. (Needs testing). Revision 15: Flakey target Revision 16: dm-zero