md.c (59767fbd49d794b4499d30b314df6c0d4aca584b) md.c (ddcf35d397976421a4ec1d0d00fbcc027a8cb034)
1/*
2 md.c : Multiple Devices driver for Linux
3 Copyright (C) 1998, 1999, 2000 Ingo Molnar
4
5 completely rewritten, based on the MD driver code from Marc Zyngier
6
7 Changes:
8

--- 321 unchanged lines hidden (view full) ---

330 if (atomic_dec_and_test(&mddev->active_io) && mddev->suspended)
331 wake_up(&mddev->sb_wait);
332}
333EXPORT_SYMBOL(md_handle_request);
334
335static blk_qc_t md_make_request(struct request_queue *q, struct bio *bio)
336{
337 const int rw = bio_data_dir(bio);
1/*
2 md.c : Multiple Devices driver for Linux
3 Copyright (C) 1998, 1999, 2000 Ingo Molnar
4
5 completely rewritten, based on the MD driver code from Marc Zyngier
6
7 Changes:
8

--- 321 unchanged lines hidden (view full) ---

330 if (atomic_dec_and_test(&mddev->active_io) && mddev->suspended)
331 wake_up(&mddev->sb_wait);
332}
333EXPORT_SYMBOL(md_handle_request);
334
335static blk_qc_t md_make_request(struct request_queue *q, struct bio *bio)
336{
337 const int rw = bio_data_dir(bio);
338 const int sgrp = op_stat_group(bio_op(bio));
338 struct mddev *mddev = q->queuedata;
339 unsigned int sectors;
340 int cpu;
341
342 blk_queue_split(q, &bio);
343
344 if (mddev == NULL || mddev->pers == NULL) {
345 bio_io_error(bio);

--- 12 unchanged lines hidden (view full) ---

358 */
359 sectors = bio_sectors(bio);
360 /* bio could be mergeable after passing to underlayer */
361 bio->bi_opf &= ~REQ_NOMERGE;
362
363 md_handle_request(mddev, bio);
364
365 cpu = part_stat_lock();
339 struct mddev *mddev = q->queuedata;
340 unsigned int sectors;
341 int cpu;
342
343 blk_queue_split(q, &bio);
344
345 if (mddev == NULL || mddev->pers == NULL) {
346 bio_io_error(bio);

--- 12 unchanged lines hidden (view full) ---

359 */
360 sectors = bio_sectors(bio);
361 /* bio could be mergeable after passing to underlayer */
362 bio->bi_opf &= ~REQ_NOMERGE;
363
364 md_handle_request(mddev, bio);
365
366 cpu = part_stat_lock();
366 part_stat_inc(cpu, &mddev->gendisk->part0, ios[rw]);
367 part_stat_add(cpu, &mddev->gendisk->part0, sectors[rw], sectors);
367 part_stat_inc(cpu, &mddev->gendisk->part0, ios[sgrp]);
368 part_stat_add(cpu, &mddev->gendisk->part0, sectors[sgrp], sectors);
368 part_stat_unlock();
369
370 return BLK_QC_T_NONE;
371}
372
373/* mddev_suspend makes sure no new requests are submitted
374 * to the device, and that any requests that have been submitted
375 * are completely handled.

--- 9053 unchanged lines hidden ---
369 part_stat_unlock();
370
371 return BLK_QC_T_NONE;
372}
373
374/* mddev_suspend makes sure no new requests are submitted
375 * to the device, and that any requests that have been submitted
376 * are completely handled.

--- 9053 unchanged lines hidden ---