コード例 #1
0
ファイル: raid0.c プロジェクト: 274914765/C
static void raid0_unplug(struct request_queue *q)
{
    mddev_t *mddev = q->queuedata;
    raid0_conf_t *conf = mddev_to_conf(mddev);
    mdk_rdev_t **devlist = conf->strip_zone[0].dev;
    int i;

    for (i=0; i<mddev->raid_disks; i++) {
        struct request_queue *r_queue = bdev_get_queue(devlist[i]->bdev);

        blk_unplug(r_queue);
    }
}
コード例 #2
0
static void raid0_unplug(struct request_queue *q)
{
	struct mddev *mddev = q->queuedata;
	struct r0conf *conf = mddev->private;
	struct md_rdev **devlist = conf->devlist;
	int raid_disks = conf->strip_zone[0].nb_dev;
	int i;

	for (i=0; i < raid_disks; i++) {
		struct request_queue *r_queue = bdev_get_queue(devlist[i]->bdev);

		blk_unplug(r_queue);
	}
}
コード例 #3
0
ファイル: multipath.c プロジェクト: Tigrouzen/k1099
static void unplug_slaves(mddev_t *mddev)
{
	multipath_conf_t *conf = mddev_to_conf(mddev);
	int i;

	rcu_read_lock();
	for (i=0; i<mddev->raid_disks; i++) {
		mdk_rdev_t *rdev = rcu_dereference(conf->multipaths[i].rdev);
		if (rdev && !test_bit(Faulty, &rdev->flags)
		    && atomic_read(&rdev->nr_pending)) {
			struct request_queue *r_queue = bdev_get_queue(rdev->bdev);

			atomic_inc(&rdev->nr_pending);
			rcu_read_unlock();

			blk_unplug(r_queue);

			rdev_dec_pending(rdev, mddev);
			rcu_read_lock();
		}
	}
	rcu_read_unlock();
}