Lines Matching refs:mddev

31 static inline struct dev_info *which_dev(struct mddev *mddev, sector_t sector)  in which_dev()  argument
37 hi = mddev->raid_disks - 1; in which_dev()
38 conf = mddev->private; in which_dev()
62 static int linear_congested(struct mddev *mddev, int bits) in linear_congested() argument
68 conf = rcu_dereference(mddev->private); in linear_congested()
79 static sector_t linear_size(struct mddev *mddev, sector_t sectors, int raid_disks) in linear_size() argument
84 conf = mddev->private; in linear_size()
92 static struct linear_conf *linear_conf(struct mddev *mddev, int raid_disks) in linear_conf() argument
107 rdev_for_each(rdev, mddev) { in linear_conf()
114 mdname(mddev)); in linear_conf()
119 if (mddev->chunk_sectors) { in linear_conf()
121 sector_div(sectors, mddev->chunk_sectors); in linear_conf()
122 rdev->sectors = sectors * mddev->chunk_sectors; in linear_conf()
125 disk_stack_limits(mddev->gendisk, rdev->bdev, in linear_conf()
136 mdname(mddev)); in linear_conf()
141 blk_queue_flag_clear(QUEUE_FLAG_DISCARD, mddev->queue); in linear_conf()
143 blk_queue_flag_set(QUEUE_FLAG_DISCARD, mddev->queue); in linear_conf()
175 static int linear_run (struct mddev *mddev) in linear_run() argument
180 if (md_check_no_bitmap(mddev)) in linear_run()
182 conf = linear_conf(mddev, mddev->raid_disks); in linear_run()
186 mddev->private = conf; in linear_run()
187 md_set_array_sectors(mddev, linear_size(mddev, 0, 0)); in linear_run()
189 ret = md_integrity_register(mddev); in linear_run()
192 mddev->private = NULL; in linear_run()
197 static int linear_add(struct mddev *mddev, struct md_rdev *rdev) in linear_add() argument
209 if (rdev->saved_raid_disk != mddev->raid_disks) in linear_add()
215 newconf = linear_conf(mddev,mddev->raid_disks+1); in linear_add()
226 mddev_suspend(mddev); in linear_add()
227 oldconf = rcu_dereference_protected(mddev->private, in linear_add()
228 lockdep_is_held(&mddev->reconfig_mutex)); in linear_add()
229 mddev->raid_disks++; in linear_add()
230 WARN_ONCE(mddev->raid_disks != newconf->raid_disks, in linear_add()
232 rcu_assign_pointer(mddev->private, newconf); in linear_add()
233 md_set_array_sectors(mddev, linear_size(mddev, 0, 0)); in linear_add()
234 set_capacity(mddev->gendisk, mddev->array_sectors); in linear_add()
235 mddev_resume(mddev); in linear_add()
236 revalidate_disk(mddev->gendisk); in linear_add()
241 static void linear_free(struct mddev *mddev, void *priv) in linear_free() argument
248 static bool linear_make_request(struct mddev *mddev, struct bio *bio) in linear_make_request() argument
256 md_flush_request(mddev, bio); in linear_make_request()
260 tmp_dev = which_dev(mddev, bio_sector); in linear_make_request()
272 GFP_NOIO, &mddev->bio_set); in linear_make_request()
287 if (mddev->gendisk) in linear_make_request()
289 bio, disk_devt(mddev->gendisk), in linear_make_request()
291 mddev_check_writesame(mddev, bio); in linear_make_request()
292 mddev_check_write_zeroes(mddev, bio); in linear_make_request()
299 mdname(mddev), in linear_make_request()
308 static void linear_status (struct seq_file *seq, struct mddev *mddev) in linear_status() argument
310 seq_printf(seq, " %dk rounding", mddev->chunk_sectors / 2); in linear_status()
313 static void linear_quiesce(struct mddev *mddev, int state) in linear_quiesce() argument