diff options
Diffstat (limited to 'drivers/md/raid1.c')
| -rw-r--r-- | drivers/md/raid1.c | 13 | 
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 03a5ab705c2..b9764429d85 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -779,7 +779,7 @@ static int make_request(struct request_queue *q, struct bio * bio)  	struct page **behind_pages = NULL;  	const int rw = bio_data_dir(bio);  	const int do_sync = bio_sync(bio); -	int do_barriers; +	int cpu, do_barriers;  	mdk_rdev_t *blocked_rdev;  	/* @@ -804,8 +804,11 @@ static int make_request(struct request_queue *q, struct bio * bio)  	bitmap = mddev->bitmap; -	disk_stat_inc(mddev->gendisk, ios[rw]); -	disk_stat_add(mddev->gendisk, sectors[rw], bio_sectors(bio)); +	cpu = part_stat_lock(); +	part_stat_inc(cpu, &mddev->gendisk->part0, ios[rw]); +	part_stat_add(cpu, &mddev->gendisk->part0, sectors[rw], +		      bio_sectors(bio)); +	part_stat_unlock();  	/*  	 * make_request() can abort the operation when READA is being @@ -1302,9 +1305,6 @@ static void sync_request_write(mddev_t *mddev, r1bio_t *r1_bio)  					sbio->bi_size = r1_bio->sectors << 9;  					sbio->bi_idx = 0;  					sbio->bi_phys_segments = 0; -					sbio->bi_hw_segments = 0; -					sbio->bi_hw_front_size = 0; -					sbio->bi_hw_back_size = 0;  					sbio->bi_flags &= ~(BIO_POOL_MASK - 1);  					sbio->bi_flags |= 1 << BIO_UPTODATE;  					sbio->bi_next = NULL; @@ -1790,7 +1790,6 @@ static sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *skipped, i  		bio->bi_vcnt = 0;  		bio->bi_idx = 0;  		bio->bi_phys_segments = 0; -		bio->bi_hw_segments = 0;  		bio->bi_size = 0;  		bio->bi_end_io = NULL;  		bio->bi_private = NULL;  |