• Home
  • Raw
  • Download

Lines Matching refs:conf

26 static int multipath_map (struct mpconf *conf)  in multipath_map()  argument
28 int i, disks = conf->raid_disks; in multipath_map()
37 struct md_rdev *rdev = rcu_dereference(conf->multipaths[i].rdev); in multipath_map()
55 struct mpconf *conf = mddev->private; in multipath_reschedule_retry() local
57 spin_lock_irqsave(&conf->device_lock, flags); in multipath_reschedule_retry()
58 list_add(&mp_bh->retry_list, &conf->retry_list); in multipath_reschedule_retry()
59 spin_unlock_irqrestore(&conf->device_lock, flags); in multipath_reschedule_retry()
71 struct mpconf *conf = mp_bh->mddev->private; in multipath_end_bh_io() local
75 mempool_free(mp_bh, &conf->pool); in multipath_end_bh_io()
81 struct mpconf *conf = mp_bh->mddev->private; in multipath_end_request() local
82 struct md_rdev *rdev = conf->multipaths[mp_bh->path].rdev; in multipath_end_request()
98 rdev_dec_pending(rdev, conf->mddev); in multipath_end_request()
103 struct mpconf *conf = mddev->private; in multipath_make_request() local
111 mp_bh = mempool_alloc(&conf->pool, GFP_NOIO); in multipath_make_request()
116 mp_bh->path = multipath_map(conf); in multipath_make_request()
119 mempool_free(mp_bh, &conf->pool); in multipath_make_request()
122 multipath = conf->multipaths + mp_bh->path; in multipath_make_request()
140 struct mpconf *conf = mddev->private; in multipath_status() local
143 seq_printf (seq, " [%d/%d] [", conf->raid_disks, in multipath_status()
144 conf->raid_disks - mddev->degraded); in multipath_status()
146 for (i = 0; i < conf->raid_disks; i++) { in multipath_status()
147 struct md_rdev *rdev = rcu_dereference(conf->multipaths[i].rdev); in multipath_status()
159 struct mpconf *conf = mddev->private; in multipath_error() local
162 if (conf->raid_disks - mddev->degraded <= 1) { in multipath_error()
177 spin_lock_irqsave(&conf->device_lock, flags); in multipath_error()
179 spin_unlock_irqrestore(&conf->device_lock, flags); in multipath_error()
186 conf->raid_disks - mddev->degraded); in multipath_error()
189 static void print_multipath_conf (struct mpconf *conf) in print_multipath_conf() argument
195 if (!conf) { in print_multipath_conf()
199 pr_debug(" --- wd:%d rd:%d\n", conf->raid_disks - conf->mddev->degraded, in print_multipath_conf()
200 conf->raid_disks); in print_multipath_conf()
202 for (i = 0; i < conf->raid_disks; i++) { in print_multipath_conf()
204 tmp = conf->multipaths + i; in print_multipath_conf()
214 struct mpconf *conf = mddev->private; in multipath_add_disk() local
224 print_multipath_conf(conf); in multipath_add_disk()
227 if ((p=conf->multipaths+path)->rdev == NULL) { in multipath_add_disk()
234 spin_lock_irq(&conf->device_lock); in multipath_add_disk()
238 spin_unlock_irq(&conf->device_lock); in multipath_add_disk()
244 print_multipath_conf(conf); in multipath_add_disk()
251 struct mpconf *conf = mddev->private; in multipath_remove_disk() local
254 struct multipath_info *p = conf->multipaths + number; in multipath_remove_disk()
256 print_multipath_conf(conf); in multipath_remove_disk()
279 print_multipath_conf(conf); in multipath_remove_disk()
297 struct mpconf *conf = mddev->private; in multipathd() local
298 struct list_head *head = &conf->retry_list; in multipathd()
303 spin_lock_irqsave(&conf->device_lock, flags); in multipathd()
308 spin_unlock_irqrestore(&conf->device_lock, flags); in multipathd()
313 if ((mp_bh->path = multipath_map (conf))<0) { in multipathd()
324 conf->multipaths[mp_bh->path].rdev->data_offset; in multipathd()
325 bio_set_dev(bio, conf->multipaths[mp_bh->path].rdev->bdev); in multipathd()
332 spin_unlock_irqrestore(&conf->device_lock, flags); in multipathd()
345 struct mpconf *conf; in multipath_run() local
366 conf = kzalloc(sizeof(struct mpconf), GFP_KERNEL); in multipath_run()
367 mddev->private = conf; in multipath_run()
368 if (!conf) in multipath_run()
371 conf->multipaths = kcalloc(mddev->raid_disks, in multipath_run()
374 if (!conf->multipaths) in multipath_run()
384 disk = conf->multipaths + disk_idx; in multipath_run()
393 conf->raid_disks = mddev->raid_disks; in multipath_run()
394 conf->mddev = mddev; in multipath_run()
395 spin_lock_init(&conf->device_lock); in multipath_run()
396 INIT_LIST_HEAD(&conf->retry_list); in multipath_run()
403 mddev->degraded = conf->raid_disks - working_disks; in multipath_run()
405 ret = mempool_init_kmalloc_pool(&conf->pool, NR_RESERVED_BUFS, in multipath_run()
416 mdname(mddev), conf->raid_disks - mddev->degraded, in multipath_run()
429 mempool_exit(&conf->pool); in multipath_run()
430 kfree(conf->multipaths); in multipath_run()
431 kfree(conf); in multipath_run()
439 struct mpconf *conf = priv; in multipath_free() local
441 mempool_exit(&conf->pool); in multipath_free()
442 kfree(conf->multipaths); in multipath_free()
443 kfree(conf); in multipath_free()