Lines Matching refs:rdev

45 		struct md_rdev *rdev = rcu_dereference(conf->multipaths[i].rdev);  in multipath_map()  local
46 if (rdev && test_bit(In_sync, &rdev->flags)) { in multipath_map()
47 atomic_inc(&rdev->nr_pending); in multipath_map()
89 struct md_rdev *rdev = conf->multipaths[mp_bh->path].rdev; in multipath_end_request() local
98 md_error (mp_bh->mddev, rdev); in multipath_end_request()
100 bdevname(rdev->bdev,b), in multipath_end_request()
105 rdev_dec_pending(rdev, conf->mddev); in multipath_end_request()
135 mp_bh->bio.bi_iter.bi_sector += multipath->rdev->data_offset; in multipath_make_request()
136 mp_bh->bio.bi_bdev = multipath->rdev->bdev; in multipath_make_request()
153 conf->multipaths[i].rdev && in multipath_status()
154 test_bit(In_sync, &conf->multipaths[i].rdev->flags) ? "U" : "_"); in multipath_status()
165 struct md_rdev *rdev = rcu_dereference(conf->multipaths[i].rdev); in multipath_congested() local
166 if (rdev && !test_bit(Faulty, &rdev->flags)) { in multipath_congested()
167 struct request_queue *q = bdev_get_queue(rdev->bdev); in multipath_congested()
183 static void multipath_error (struct mddev *mddev, struct md_rdev *rdev) in multipath_error() argument
202 if (test_and_clear_bit(In_sync, &rdev->flags)) { in multipath_error()
208 set_bit(Faulty, &rdev->flags); in multipath_error()
214 bdevname(rdev->bdev, b), in multipath_error()
234 if (tmp->rdev) in print_multipath_conf()
236 i,!test_bit(Faulty, &tmp->rdev->flags), in print_multipath_conf()
237 bdevname(tmp->rdev->bdev,b)); in print_multipath_conf()
241 static int multipath_add_disk(struct mddev *mddev, struct md_rdev *rdev) in multipath_add_disk() argument
251 if (rdev->raid_disk >= 0) in multipath_add_disk()
252 first = last = rdev->raid_disk; in multipath_add_disk()
257 if ((p=conf->multipaths+path)->rdev == NULL) { in multipath_add_disk()
258 q = rdev->bdev->bd_disk->queue; in multipath_add_disk()
259 disk_stack_limits(mddev->gendisk, rdev->bdev, in multipath_add_disk()
260 rdev->data_offset << 9); in multipath_add_disk()
262 err = md_integrity_add_rdev(rdev, mddev); in multipath_add_disk()
267 rdev->raid_disk = path; in multipath_add_disk()
268 set_bit(In_sync, &rdev->flags); in multipath_add_disk()
270 rcu_assign_pointer(p->rdev, rdev); in multipath_add_disk()
280 static int multipath_remove_disk(struct mddev *mddev, struct md_rdev *rdev) in multipath_remove_disk() argument
284 int number = rdev->raid_disk; in multipath_remove_disk()
289 if (rdev == p->rdev) { in multipath_remove_disk()
290 if (test_bit(In_sync, &rdev->flags) || in multipath_remove_disk()
291 atomic_read(&rdev->nr_pending)) { in multipath_remove_disk()
297 p->rdev = NULL; in multipath_remove_disk()
299 if (atomic_read(&rdev->nr_pending)) { in multipath_remove_disk()
302 p->rdev = rdev; in multipath_remove_disk()
356 conf->multipaths[mp_bh->path].rdev->data_offset; in multipathd()
357 bio->bi_bdev = conf->multipaths[mp_bh->path].rdev->bdev; in multipathd()
380 struct md_rdev *rdev; in multipath_run() local
416 rdev_for_each(rdev, mddev) { in multipath_run()
417 disk_idx = rdev->raid_disk; in multipath_run()
423 disk->rdev = rdev; in multipath_run()
424 disk_stack_limits(mddev->gendisk, rdev->bdev, in multipath_run()
425 rdev->data_offset << 9); in multipath_run()
427 if (!test_bit(Faulty, &rdev->flags)) in multipath_run()