Lines Matching refs:mddev
30 static inline struct dev_info *which_dev(struct mddev *mddev, sector_t sector) in which_dev() argument
36 hi = mddev->raid_disks - 1; in which_dev()
37 conf = mddev->private; in which_dev()
63 static int linear_mergeable_bvec(struct mddev *mddev, in linear_mergeable_bvec() argument
73 dev0 = which_dev(mddev, sector); in linear_mergeable_bvec()
97 static int linear_congested(struct mddev *mddev, int bits) in linear_congested() argument
102 conf = mddev->private; in linear_congested()
104 for (i = 0; i < mddev->raid_disks && !ret ; i++) { in linear_congested()
112 static sector_t linear_size(struct mddev *mddev, sector_t sectors, int raid_disks) in linear_size() argument
117 conf = mddev->private; in linear_size()
125 static struct linear_conf *linear_conf(struct mddev *mddev, int raid_disks) in linear_conf() argument
140 rdev_for_each(rdev, mddev) { in linear_conf()
147 mdname(mddev)); in linear_conf()
152 if (mddev->chunk_sectors) { in linear_conf()
154 sector_div(sectors, mddev->chunk_sectors); in linear_conf()
155 rdev->sectors = sectors * mddev->chunk_sectors; in linear_conf()
158 disk_stack_limits(mddev->gendisk, rdev->bdev, in linear_conf()
169 mdname(mddev)); in linear_conf()
174 queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, mddev->queue); in linear_conf()
176 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, mddev->queue); in linear_conf()
195 static int linear_run (struct mddev *mddev) in linear_run() argument
200 if (md_check_no_bitmap(mddev)) in linear_run()
202 conf = linear_conf(mddev, mddev->raid_disks); in linear_run()
206 mddev->private = conf; in linear_run()
207 md_set_array_sectors(mddev, linear_size(mddev, 0, 0)); in linear_run()
209 ret = md_integrity_register(mddev); in linear_run()
212 mddev->private = NULL; in linear_run()
217 static int linear_add(struct mddev *mddev, struct md_rdev *rdev) in linear_add() argument
229 if (rdev->saved_raid_disk != mddev->raid_disks) in linear_add()
235 newconf = linear_conf(mddev,mddev->raid_disks+1); in linear_add()
240 mddev_suspend(mddev); in linear_add()
241 oldconf = mddev->private; in linear_add()
242 mddev->raid_disks++; in linear_add()
243 mddev->private = newconf; in linear_add()
244 md_set_array_sectors(mddev, linear_size(mddev, 0, 0)); in linear_add()
245 set_capacity(mddev->gendisk, mddev->array_sectors); in linear_add()
246 mddev_resume(mddev); in linear_add()
247 revalidate_disk(mddev->gendisk); in linear_add()
252 static void linear_free(struct mddev *mddev, void *priv) in linear_free() argument
259 static void linear_make_request(struct mddev *mddev, struct bio *bio) in linear_make_request() argument
267 md_flush_request(mddev, bio); in linear_make_request()
272 tmp_dev = which_dev(mddev, bio->bi_iter.bi_sector); in linear_make_request()
310 mdname(mddev), in linear_make_request()
318 static void linear_status (struct seq_file *seq, struct mddev *mddev) in linear_status() argument
321 seq_printf(seq, " %dk rounding", mddev->chunk_sectors / 2); in linear_status()
324 static void linear_quiesce(struct mddev *mddev, int state) in linear_quiesce() argument