diff options
Diffstat (limited to 'drivers/md/multipath.c')
-rw-r--r-- | drivers/md/multipath.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c index d2d3fd54cc68..ee7646f974a0 100644 --- a/drivers/md/multipath.c +++ b/drivers/md/multipath.c | |||
@@ -150,7 +150,6 @@ static int multipath_make_request (struct request_queue *q, struct bio * bio) | |||
150 | } | 150 | } |
151 | 151 | ||
152 | mp_bh = mempool_alloc(conf->pool, GFP_NOIO); | 152 | mp_bh = mempool_alloc(conf->pool, GFP_NOIO); |
153 | memset(mp_bh, 0, sizeof(*mp_bh)); | ||
154 | 153 | ||
155 | mp_bh->master_bio = bio; | 154 | mp_bh->master_bio = bio; |
156 | mp_bh->mddev = mddev; | 155 | mp_bh->mddev = mddev; |
@@ -199,6 +198,9 @@ static int multipath_congested(void *data, int bits) | |||
199 | multipath_conf_t *conf = mddev->private; | 198 | multipath_conf_t *conf = mddev->private; |
200 | int i, ret = 0; | 199 | int i, ret = 0; |
201 | 200 | ||
201 | if (mddev_congested(mddev, bits)) | ||
202 | return 1; | ||
203 | |||
202 | rcu_read_lock(); | 204 | rcu_read_lock(); |
203 | for (i = 0; i < mddev->raid_disks ; i++) { | 205 | for (i = 0; i < mddev->raid_disks ; i++) { |
204 | mdk_rdev_t *rdev = rcu_dereference(conf->multipaths[i].rdev); | 206 | mdk_rdev_t *rdev = rcu_dereference(conf->multipaths[i].rdev); |
@@ -504,7 +506,7 @@ static int multipath_run (mddev_t *mddev) | |||
504 | } | 506 | } |
505 | 507 | ||
506 | { | 508 | { |
507 | mddev->thread = md_register_thread(multipathd, mddev, "%s_multipath"); | 509 | mddev->thread = md_register_thread(multipathd, mddev, NULL); |
508 | if (!mddev->thread) { | 510 | if (!mddev->thread) { |
509 | printk(KERN_ERR "multipath: couldn't allocate thread" | 511 | printk(KERN_ERR "multipath: couldn't allocate thread" |
510 | " for %s\n", mdname(mddev)); | 512 | " for %s\n", mdname(mddev)); |