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 --- |