diff options
Diffstat (limited to 'drivers/md/multipath.c')
| -rw-r--r-- | drivers/md/multipath.c | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c index f2a63f394ad9..b35731cceac6 100644 --- a/drivers/md/multipath.c +++ b/drivers/md/multipath.c | |||
| @@ -194,35 +194,6 @@ static void multipath_status (struct seq_file *seq, mddev_t *mddev) | |||
| 194 | seq_printf (seq, "]"); | 194 | seq_printf (seq, "]"); |
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | static int multipath_issue_flush(struct request_queue *q, struct gendisk *disk, | ||
| 198 | sector_t *error_sector) | ||
| 199 | { | ||
| 200 | mddev_t *mddev = q->queuedata; | ||
| 201 | multipath_conf_t *conf = mddev_to_conf(mddev); | ||
| 202 | int i, ret = 0; | ||
| 203 | |||
| 204 | rcu_read_lock(); | ||
| 205 | for (i=0; i<mddev->raid_disks && ret == 0; i++) { | ||
| 206 | mdk_rdev_t *rdev = rcu_dereference(conf->multipaths[i].rdev); | ||
| 207 | if (rdev && !test_bit(Faulty, &rdev->flags)) { | ||
| 208 | struct block_device *bdev = rdev->bdev; | ||
| 209 | struct request_queue *r_queue = bdev_get_queue(bdev); | ||
| 210 | |||
| 211 | if (!r_queue->issue_flush_fn) | ||
| 212 | ret = -EOPNOTSUPP; | ||
| 213 | else { | ||
| 214 | atomic_inc(&rdev->nr_pending); | ||
| 215 | rcu_read_unlock(); | ||
| 216 | ret = r_queue->issue_flush_fn(r_queue, bdev->bd_disk, | ||
| 217 | error_sector); | ||
| 218 | rdev_dec_pending(rdev, mddev); | ||
| 219 | rcu_read_lock(); | ||
| 220 | } | ||
| 221 | } | ||
| 222 | } | ||
| 223 | rcu_read_unlock(); | ||
| 224 | return ret; | ||
| 225 | } | ||
| 226 | static int multipath_congested(void *data, int bits) | 197 | static int multipath_congested(void *data, int bits) |
| 227 | { | 198 | { |
| 228 | mddev_t *mddev = data; | 199 | mddev_t *mddev = data; |
| @@ -527,7 +498,6 @@ static int multipath_run (mddev_t *mddev) | |||
| 527 | mddev->array_size = mddev->size; | 498 | mddev->array_size = mddev->size; |
| 528 | 499 | ||
| 529 | mddev->queue->unplug_fn = multipath_unplug; | 500 | mddev->queue->unplug_fn = multipath_unplug; |
| 530 | mddev->queue->issue_flush_fn = multipath_issue_flush; | ||
| 531 | mddev->queue->backing_dev_info.congested_fn = multipath_congested; | 501 | mddev->queue->backing_dev_info.congested_fn = multipath_congested; |
| 532 | mddev->queue->backing_dev_info.congested_data = mddev; | 502 | mddev->queue->backing_dev_info.congested_data = mddev; |
| 533 | 503 | ||
