dm thin: use on-stack plugging when submitting bios in process_thin_deferred_bios
authorMike Snitzer <snitzer@redhat.com>
Sat, 22 Mar 2014 17:45:46 +0000 (13:45 -0400)
committerMike Snitzer <snitzer@redhat.com>
Thu, 27 Mar 2014 04:24:30 +0000 (00:24 -0400)
drivers/md/dm-thin.c

index c5e098b316b4311ff4530e56c347be8cd792098f..1b853d57f4ab6563c55181ff246071ea4052f9f1 100644 (file)
@@ -1440,6 +1440,7 @@ static void process_thin_deferred_bios(struct thin_c *tc)
        unsigned long flags;
        struct bio *bio;
        struct bio_list bios;
+       struct blk_plug plug;
 
        if (tc->requeue_mode) {
                requeue_bio_list(tc, &tc->deferred_bio_list);
@@ -1466,6 +1467,7 @@ static void process_thin_deferred_bios(struct thin_c *tc)
 
        spin_unlock_irqrestore(&tc->lock, flags);
 
+       blk_start_plug(&plug);
        while ((bio = bio_list_pop(&bios))) {
                /*
                 * If we've got no free new_mapping structs, and processing
@@ -1484,6 +1486,7 @@ static void process_thin_deferred_bios(struct thin_c *tc)
                else
                        pool->process_bio(tc, bio);
        }
+       blk_finish_plug(&plug);
 }
 
 static void process_deferred_bios(struct pool *pool)