Lines Matching refs:conf

26 static int multipath_map (struct mpconf *conf)
28 int i, disks = conf->raid_disks;
37 struct md_rdev *rdev = rcu_dereference(conf->multipaths[i].rdev);
55 struct mpconf *conf = mddev->private;
57 spin_lock_irqsave(&conf->device_lock, flags);
58 list_add(&mp_bh->retry_list, &conf->retry_list);
59 spin_unlock_irqrestore(&conf->device_lock, flags);
71 struct mpconf *conf = mp_bh->mddev->private;
75 mempool_free(mp_bh, &conf->pool);
81 struct mpconf *conf = mp_bh->mddev->private;
82 struct md_rdev *rdev = conf->multipaths[mp_bh->path].rdev;
97 rdev_dec_pending(rdev, conf->mddev);
102 struct mpconf *conf = mddev->private;
111 mp_bh = mempool_alloc(&conf->pool, GFP_NOIO);
116 mp_bh->path = multipath_map(conf);
119 mempool_free(mp_bh, &conf->pool);
122 multipath = conf->multipaths + mp_bh->path;
137 struct mpconf *conf = mddev->private;
140 seq_printf (seq, " [%d/%d] [", conf->raid_disks,
141 conf->raid_disks - mddev->degraded);
143 for (i = 0; i < conf->raid_disks; i++) {
144 struct md_rdev *rdev = rcu_dereference(conf->multipaths[i].rdev);
156 struct mpconf *conf = mddev->private;
158 if (conf->raid_disks - mddev->degraded <= 1) {
173 spin_lock_irqsave(&conf->device_lock, flags);
175 spin_unlock_irqrestore(&conf->device_lock, flags);
182 conf->raid_disks - mddev->degraded);
185 static void print_multipath_conf (struct mpconf *conf)
190 pr_debug("MULTIPATH conf printout:\n");
191 if (!conf) {
192 pr_debug("(conf==NULL)\n");
195 pr_debug(" --- wd:%d rd:%d\n", conf->raid_disks - conf->mddev->degraded,
196 conf->raid_disks);
198 for (i = 0; i < conf->raid_disks; i++) {
199 tmp = conf->multipaths + i;
209 struct mpconf *conf = mddev->private;
219 print_multipath_conf(conf);
222 if ((p=conf->multipaths+path)->rdev == NULL) {
229 spin_lock_irq(&conf->device_lock);
233 spin_unlock_irq(&conf->device_lock);
239 print_multipath_conf(conf);
246 struct mpconf *conf = mddev->private;
249 struct multipath_info *p = conf->multipaths + number;
251 print_multipath_conf(conf);
274 print_multipath_conf(conf);
292 struct mpconf *conf = mddev->private;
293 struct list_head *head = &conf->retry_list;
297 spin_lock_irqsave(&conf->device_lock, flags);
302 spin_unlock_irqrestore(&conf->device_lock, flags);
307 if ((mp_bh->path = multipath_map (conf))<0) {
318 conf->multipaths[mp_bh->path].rdev->data_offset;
319 bio_set_dev(bio, conf->multipaths[mp_bh->path].rdev->bdev);
326 spin_unlock_irqrestore(&conf->device_lock, flags);
339 struct mpconf *conf;
360 conf = kzalloc(sizeof(struct mpconf), GFP_KERNEL);
361 mddev->private = conf;
362 if (!conf)
365 conf->multipaths = kcalloc(mddev->raid_disks,
368 if (!conf->multipaths)
378 disk = conf->multipaths + disk_idx;
387 conf->raid_disks = mddev->raid_disks;
388 conf->mddev = mddev;
389 spin_lock_init(&conf->device_lock);
390 INIT_LIST_HEAD(&conf->retry_list);
397 mddev->degraded = conf->raid_disks - working_disks;
399 ret = mempool_init_kmalloc_pool(&conf->pool, NR_RESERVED_BUFS,
410 mdname(mddev), conf->raid_disks - mddev->degraded,
423 mempool_exit(&conf->pool);
424 kfree(conf->multipaths);
425 kfree(conf);
433 struct mpconf *conf = priv;
435 mempool_exit(&conf->pool);
436 kfree(conf->multipaths);
437 kfree(conf);