When copying data from the journal to the appropriate place, we submit
many I/Os. Some of these I/Os could go to adjacent areas. This patch uses
the plug mechanism, so that the adjacent I/Os could be merged.

Signed-off-by: Mikulas Patocka <[email protected]>

---
 drivers/md/dm-integrity.c |    5 +++++
 1 file changed, 5 insertions(+)

Index: linux-2.6/drivers/md/dm-integrity.c
===================================================================
--- linux-2.6.orig/drivers/md/dm-integrity.c
+++ linux-2.6/drivers/md/dm-integrity.c
@@ -1822,6 +1822,9 @@ static void do_journal_write(struct dm_i
 {
        unsigned i, j, n;
        struct journal_completion comp;
+       struct blk_plug plug;
+
+       blk_start_plug(&plug);
 
        comp.ic = ic;
        comp.in_flight = (atomic_t)ATOMIC_INIT(1);
@@ -1946,6 +1949,8 @@ skip_io:
 
        dm_bufio_write_dirty_buffers_async(ic->bufio);
 
+       blk_finish_plug(&plug);
+
        complete_journal_op(&comp);
        wait_for_completion_io(&comp.comp);
 

--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to