Revision 1: -mm3 Revision 2: dm-io Revision 3: kcopyd Revision 4: Snapshot target Revision 5: Mirror target Revision 6: Flakey target Revision 7: There are lots of mutable fields in the bio struct. These get changed by the lower levels of the block layer. This led us to try and record these fields, and restore them before passing the bio into our endio target method. Mike Christie pointed out 2 problems with this: i) Although we record _after_ the bio has been mapped, there's a possible race if the target has decided to take over submission of the io (as snapshots do). ii) We do not re-record after the endio function has remapped, and even if we did, it would be susceptable to the same race as (i). So we're going to say that the targets themselves are responsible for this record/restore process. This particular patch strips out record/restore from dm.c Revision 8: - dm-bio-record.h - change multipath target to use dm-bio-record.h Revision 9: dm-mpath.c: Correct ctr args comment. Revision 10: dm-mpath.c: define an EMIT macro to tidy the status method a bit Revision 11: dm-mpath.c: There's no need to store the priority for each group in the kernel, all we're interested in is their relative priority. Which is given implicitly by the group orderings in the constructor args. Revision 12: dm-mpath.c: m->nr_paths is now redundant Revision 13: dm-stripe.c: The stripe width must be at least the page size. Revision 14: dm-stripe.c: convert PAGE_SIZE to sectors before comparing with chunk_size. Merge with previous patch. Revision 15: Handle interrupts within suspend. Revision 16: dm-io.c: Handle signals in during synchronous io. Revision 17: VFS lock patch. [Chris Mason] Revision 18: Lock the filesystem while a device is suspended. [Kevin Corry, Joe Thornber]