Lines Matching refs:mddev

61 	struct mddev *mddev = mp_bh->mddev;  in multipath_reschedule_retry()  local
62 struct mpconf *conf = mddev->private; in multipath_reschedule_retry()
67 md_wakeup_thread(mddev->thread); in multipath_reschedule_retry()
78 struct mpconf *conf = mp_bh->mddev->private; in multipath_end_bh_io()
88 struct mpconf *conf = mp_bh->mddev->private; in multipath_end_request()
98 md_error (mp_bh->mddev, rdev); in multipath_end_request()
105 rdev_dec_pending(rdev, conf->mddev); in multipath_end_request()
108 static void multipath_make_request(struct mddev *mddev, struct bio * bio) in multipath_make_request() argument
110 struct mpconf *conf = mddev->private; in multipath_make_request()
115 md_flush_request(mddev, bio); in multipath_make_request()
122 mp_bh->mddev = mddev; in multipath_make_request()
144 static void multipath_status (struct seq_file *seq, struct mddev *mddev) in multipath_status() argument
146 struct mpconf *conf = mddev->private; in multipath_status()
150 conf->raid_disks - mddev->degraded); in multipath_status()
158 static int multipath_congested(struct mddev *mddev, int bits) in multipath_congested() argument
160 struct mpconf *conf = mddev->private; in multipath_congested()
164 for (i = 0; i < mddev->raid_disks ; i++) { in multipath_congested()
183 static void multipath_error (struct mddev *mddev, struct md_rdev *rdev) in multipath_error() argument
185 struct mpconf *conf = mddev->private; in multipath_error()
188 if (conf->raid_disks - mddev->degraded <= 1) { in multipath_error()
205 mddev->degraded++; in multipath_error()
209 set_bit(MD_CHANGE_DEVS, &mddev->flags); in multipath_error()
215 conf->raid_disks - mddev->degraded); in multipath_error()
228 printk(" --- wd:%d rd:%d\n", conf->raid_disks - conf->mddev->degraded, in print_multipath_conf()
241 static int multipath_add_disk(struct mddev *mddev, struct md_rdev *rdev) in multipath_add_disk() argument
243 struct mpconf *conf = mddev->private; in multipath_add_disk()
249 int last = mddev->raid_disks - 1; in multipath_add_disk()
259 disk_stack_limits(mddev->gendisk, rdev->bdev, in multipath_add_disk()
262 err = md_integrity_add_rdev(rdev, mddev); in multipath_add_disk()
266 mddev->degraded--; in multipath_add_disk()
280 static int multipath_remove_disk(struct mddev *mddev, struct md_rdev *rdev) in multipath_remove_disk() argument
282 struct mpconf *conf = mddev->private; in multipath_remove_disk()
305 err = md_integrity_register(mddev); in multipath_remove_disk()
323 struct mddev *mddev = thread->mddev; in multipathd() local
327 struct mpconf *conf = mddev->private; in multipathd()
330 md_check_recovery(mddev); in multipathd()
367 static sector_t multipath_size(struct mddev *mddev, sector_t sectors, int raid_disks) in multipath_size() argument
372 return mddev->dev_sectors; in multipath_size()
375 static int multipath_run (struct mddev *mddev) in multipath_run() argument
383 if (md_check_no_bitmap(mddev)) in multipath_run()
386 if (mddev->level != LEVEL_MULTIPATH) { in multipath_run()
388 mdname(mddev), mddev->level); in multipath_run()
398 mddev->private = conf; in multipath_run()
402 mdname(mddev)); in multipath_run()
406 conf->multipaths = kzalloc(sizeof(struct multipath_info)*mddev->raid_disks, in multipath_run()
411 mdname(mddev)); in multipath_run()
416 rdev_for_each(rdev, mddev) { in multipath_run()
419 disk_idx >= mddev->raid_disks) in multipath_run()
424 disk_stack_limits(mddev->gendisk, rdev->bdev, in multipath_run()
431 conf->raid_disks = mddev->raid_disks; in multipath_run()
432 conf->mddev = mddev; in multipath_run()
438 mdname(mddev)); in multipath_run()
441 mddev->degraded = conf->raid_disks - working_disks; in multipath_run()
448 mdname(mddev)); in multipath_run()
453 mddev->thread = md_register_thread(multipathd, mddev, in multipath_run()
455 if (!mddev->thread) { in multipath_run()
457 " for %s\n", mdname(mddev)); in multipath_run()
464 mdname(mddev), conf->raid_disks - mddev->degraded, in multipath_run()
465 mddev->raid_disks); in multipath_run()
469 md_set_array_sectors(mddev, multipath_size(mddev, 0, 0)); in multipath_run()
471 if (md_integrity_register(mddev)) in multipath_run()
480 mddev->private = NULL; in multipath_run()
485 static void multipath_free(struct mddev *mddev, void *priv) in multipath_free() argument