Revision 1: -mm2 Revision 2: -mm2 errata Revision 3: If there are leftovers __end_that_request_first will call blk_recalc_rq_sector to set req->hard_nr_sectors correctly. For failfast, by subtracting bytes from the updated req->hard_nr_sectors and then calling end_that_request_chunk and end_that_request_last, you can end up with a bio that never gets completed. The attached patch built against 2.6.4 does not subtract bytes for non-blk_pc_requests. On a related note I was wondering if the following is a bug or feature. At the bottom of scsi_io_completion, it calls scsi_end_request on the bytes for the current buffer. The comments indicate this is to handle improperly reported medium errors, but commands scsi_decide_disposition determined should not be retried end up getting requeued minus the current buffer. [Mike Christie] Revision 4: Fix 64/32 bit ioctl problems. Revision 5: dm-ioctl.h: Missing definition for DM_LIST_VERSIONS_32. Revision 6: Check the uptodate flag in sub-bios to see if there was an error. [Mike Christie] Revision 7: Handle interrupts within suspend. Revision 8: dm.c: Use waitqueue_active() to save a couple of cycles. I couldn't think of a reason why event_callback() was using wake_up_interruptible() rather than plain old wake_up(), so changed it. Revision 9: VFS lock patch. [Chris Mason] Revision 10: Lock the filesystem while a device is suspended. [Kevin Corry, Joe Thornber] Revision 11: Multipath target Revision 12: dm-mpath.c: Remove blk_run_queues() after resubmitting failed ios. Revision 13: dm-io Revision 14: dm-io: stop using page->list Revision 15: dm-io.c: Add io routines to perform io on a vm area. Revision 16: dm-io.c: Get rid of global queues unplug. [Jens Axboe] Revision 17: dm-io.c: Add EXPORT_SYMBOL for dm_io_async_vm() and dm_io_sync_vm(). [Kevin Corry] Revision 18: kcopyd Revision 19: kcopyd: stop using page->list Revision 20: kcopyd.c: Remove blk_run_queues(). [Jens Axboe] Revision 21: kcopyd.c: kcopyd_put_pages() does not walk the entire list of specified pages (it stops at the second-to-last one). Thus, the nr_free_pages value is off by one. Fix this by incrementing nr_free_pages once more after the loop completes. [Kevin Corry] Revision 22: Snapshot target Revision 23: dm-exception-store.c: Use these routines. Revision 24: dm-snap.c: Remove blk_run_queues() from flush_bios(). (Not sure about this). Revision 25: Mirror target Revision 26: dm-log.c: Switch from using dm_io_sync() to dm_io_sync_vm(). Revision 27: dm-raid1.c: Remove blk_run_queues(). Revision 28: Flakey target Revision 29: dm-zero Revision 30: Log an error if the target has unknown target type, or zero length.