• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/md/

Lines Matching refs:mddev

29 static inline dev_info_t *which_dev(mddev_t *mddev, sector_t sector)
35 hi = mddev->raid_disks - 1;
36 conf = rcu_dereference(mddev->private);
66 mddev_t *mddev = q->queuedata;
72 dev0 = which_dev(mddev, sector);
92 mddev_t *mddev = q->queuedata;
97 conf = rcu_dereference(mddev->private);
99 for (i=0; i < mddev->raid_disks; i++) {
108 mddev_t *mddev = data;
112 if (mddev_congested(mddev, bits))
116 conf = rcu_dereference(mddev->private);
118 for (i = 0; i < mddev->raid_disks && !ret ; i++) {
127 static sector_t linear_size(mddev_t *mddev, sector_t sectors, int raid_disks)
133 conf = rcu_dereference(mddev->private);
142 static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
156 list_for_each_entry(rdev, &mddev->disks, same_set) {
163 mdname(mddev));
168 if (mddev->chunk_sectors) {
170 sector_div(sectors, mddev->chunk_sectors);
171 rdev->sectors = sectors * mddev->chunk_sectors;
174 disk_stack_limits(mddev->gendisk, rdev->bdev,
181 blk_queue_max_segments(mddev->queue, 1);
182 blk_queue_segment_boundary(mddev->queue,
192 mdname(mddev));
213 static int linear_run (mddev_t *mddev)
217 if (md_check_no_bitmap(mddev))
219 mddev->queue->queue_lock = &mddev->queue->__queue_lock;
220 conf = linear_conf(mddev, mddev->raid_disks);
224 mddev->private = conf;
225 md_set_array_sectors(mddev, linear_size(mddev, 0, 0));
227 blk_queue_merge_bvec(mddev->queue, linear_mergeable_bvec);
228 mddev->queue->unplug_fn = linear_unplug;
229 mddev->queue->backing_dev_info.congested_fn = linear_congested;
230 mddev->queue->backing_dev_info.congested_data = mddev;
231 md_integrity_register(mddev);
241 static int linear_add(mddev_t *mddev, mdk_rdev_t *rdev)
253 if (rdev->saved_raid_disk != mddev->raid_disks)
258 newconf = linear_conf(mddev,mddev->raid_disks+1);
263 oldconf = rcu_dereference(mddev->private);
264 mddev->raid_disks++;
265 rcu_assign_pointer(mddev->private, newconf);
266 md_set_array_sectors(mddev, linear_size(mddev, 0, 0));
267 set_capacity(mddev->gendisk, mddev->array_sectors);
268 revalidate_disk(mddev->gendisk);
273 static int linear_stop (mddev_t *mddev)
275 linear_conf_t *conf = mddev->private;
285 blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/
287 mddev->private = NULL;
292 static int linear_make_request (mddev_t *mddev, struct bio *bio)
298 md_barrier_request(mddev, bio);
303 tmp_dev = which_dev(mddev, bio->bi_sector);
314 mdname(mddev),
335 if (linear_make_request(mddev, &bp->bio1))
337 if (linear_make_request(mddev, &bp->bio2))
351 static void linear_status (struct seq_file *seq, mddev_t *mddev)
354 seq_printf(seq, " %dk rounding", mddev->chunk_sectors / 2);