dm: remove request-based DM queue's lld_busy_fn hook
authorMike Snitzer <snitzer@redhat.com>
Tue, 24 Feb 2015 00:10:15 +0000 (19:10 -0500)
committerMike Snitzer <snitzer@redhat.com>
Tue, 31 Mar 2015 16:03:49 +0000 (12:03 -0400)
DM multipath is the only caller of blk_lld_busy() -- which calls a
queue's lld_busy_fn hook.  Request-based DM doesn't support stacking
multipath devices so there is no reason to register the lld_busy_fn hook
on a multipath device's queue using blk_queue_lld_busy().

As such, remove functions dm_lld_busy and dm_table_any_busy_target.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-table.c
drivers/md/dm.c
drivers/md/dm.h

index 6554d9148927771296e52cc2882f9e6f7fa68145..057312048b681bd549456a0b2960214a8a2e5c62 100644 (file)
@@ -1677,20 +1677,6 @@ int dm_table_any_congested(struct dm_table *t, int bdi_bits)
        return r;
 }
 
-int dm_table_any_busy_target(struct dm_table *t)
-{
-       unsigned i;
-       struct dm_target *ti;
-
-       for (i = 0; i < t->num_targets; i++) {
-               ti = t->targets + i;
-               if (ti->type->busy && ti->type->busy(ti))
-                       return 1;
-       }
-
-       return 0;
-}
-
 struct mapped_device *dm_table_get_md(struct dm_table *t)
 {
        return t->md;
index e7095ebb8d6460c5b4be5584e4d7db4c3bdab274..cc8aed2e3f889e2aebd178da5cb35ca53566a099 100644 (file)
@@ -2006,22 +2006,6 @@ out:
        dm_put_live_table(md, srcu_idx);
 }
 
-static int dm_lld_busy(struct request_queue *q)
-{
-       int r;
-       struct mapped_device *md = q->queuedata;
-       struct dm_table *map = dm_get_live_table_fast(md);
-
-       if (!map || test_bit(DMF_BLOCK_IO_FOR_SUSPEND, &md->flags))
-               r = 1;
-       else
-               r = dm_table_any_busy_target(map);
-
-       dm_put_live_table_fast(md);
-
-       return r;
-}
-
 static int dm_any_congested(void *congested_data, int bdi_bits)
 {
        int r = bdi_bits;
@@ -2545,7 +2529,6 @@ static int dm_init_request_based_queue(struct mapped_device *md)
        dm_init_md_queue(md);
        blk_queue_softirq_done(md->queue, dm_softirq_done);
        blk_queue_prep_rq(md->queue, dm_prep_fn);
-       blk_queue_lld_busy(md->queue, dm_lld_busy);
 
        /* Also initialize the request-based DM worker thread */
        init_kthread_worker(&md->kworker);
index 59f53e79db8264521dc00d2563c7b58182b7e0da..db495863fa5f4ccd30f7f38182f11fb0702f4304 100644 (file)
@@ -70,7 +70,6 @@ void dm_table_presuspend_undo_targets(struct dm_table *t);
 void dm_table_postsuspend_targets(struct dm_table *t);
 int dm_table_resume_targets(struct dm_table *t);
 int dm_table_any_congested(struct dm_table *t, int bdi_bits);
-int dm_table_any_busy_target(struct dm_table *t);
 unsigned dm_table_get_type(struct dm_table *t);
 struct target_type *dm_table_get_immutable_target_type(struct dm_table *t);
 bool dm_table_request_based(struct dm_table *t);