dm integrity: use plugging when writing the journal
authorMikulas Patocka <mpatocka@redhat.com>
Wed, 19 Jul 2017 15:24:08 +0000 (11:24 -0400)
committerMike Snitzer <snitzer@redhat.com>
Wed, 19 Jul 2017 23:02:39 +0000 (19:02 -0400)
When copying data from the journal to the appropriate place, we submit
many IOs.  Some of these IOs could go to adjacent areas.  Use on-stack
plugging so that adjacent IOs get merged during submission.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-integrity.c

index 4b2fd52..be3b6f4 100644 (file)
@@ -1823,6 +1823,9 @@ static void do_journal_write(struct dm_integrity_c *ic, unsigned write_start,
 {
        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);
@@ -1947,6 +1950,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);