diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-02 11:06:02 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-02 11:06:02 -0500 |
| commit | ec1890c5df451799dec969a3581ff72e1934b5ee (patch) | |
| tree | 38e84a95297dc9c6b727b73925d5c273d110fdbe | |
| parent | ca23509fbaac0ea662ab0e287bebb72f743f9e1f (diff) | |
| parent | 496456c24f1f4280d50b81aa5bf439ab440b3d7e (diff) | |
Merge git://brick.kernel.dk/data/git/linux-2.6-block
| -rw-r--r-- | drivers/block/aoe/aoecmd.c | 13 | ||||
| -rw-r--r-- | drivers/block/genhd.c | 29 | ||||
| -rw-r--r-- | drivers/block/ll_rw_blk.c | 47 | ||||
| -rw-r--r-- | drivers/md/linear.c | 10 | ||||
| -rw-r--r-- | drivers/md/md.c | 4 | ||||
| -rw-r--r-- | drivers/md/multipath.c | 10 | ||||
| -rw-r--r-- | drivers/md/raid0.c | 10 | ||||
| -rw-r--r-- | drivers/md/raid1.c | 12 | ||||
| -rw-r--r-- | drivers/md/raid10.c | 12 | ||||
| -rw-r--r-- | drivers/md/raid5.c | 10 | ||||
| -rw-r--r-- | drivers/md/raid6main.c | 12 | ||||
| -rw-r--r-- | fs/partitions/check.c | 7 | ||||
| -rw-r--r-- | include/linux/genhd.h | 10 |
13 files changed, 70 insertions, 116 deletions
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index 5c9c7c1a3d4c..326ca3876b68 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c | |||
| @@ -468,16 +468,11 @@ aoecmd_ata_rsp(struct sk_buff *skb) | |||
| 468 | unsigned long duration = jiffies - buf->start_time; | 468 | unsigned long duration = jiffies - buf->start_time; |
| 469 | unsigned long n_sect = buf->bio->bi_size >> 9; | 469 | unsigned long n_sect = buf->bio->bi_size >> 9; |
| 470 | struct gendisk *disk = d->gd; | 470 | struct gendisk *disk = d->gd; |
| 471 | const int rw = bio_data_dir(buf->bio); | ||
| 471 | 472 | ||
| 472 | if (bio_data_dir(buf->bio) == WRITE) { | 473 | disk_stat_inc(disk, ios[rw]); |
| 473 | disk_stat_inc(disk, writes); | 474 | disk_stat_add(disk, ticks[rw], duration); |
| 474 | disk_stat_add(disk, write_ticks, duration); | 475 | disk_stat_add(disk, sectors[rw], n_sect); |
| 475 | disk_stat_add(disk, write_sectors, n_sect); | ||
| 476 | } else { | ||
| 477 | disk_stat_inc(disk, reads); | ||
| 478 | disk_stat_add(disk, read_ticks, duration); | ||
| 479 | disk_stat_add(disk, read_sectors, n_sect); | ||
| 480 | } | ||
| 481 | disk_stat_add(disk, io_ticks, duration); | 476 | disk_stat_add(disk, io_ticks, duration); |
| 482 | n = (buf->flags & BUFFL_FAIL) ? -EIO : 0; | 477 | n = (buf->flags & BUFFL_FAIL) ? -EIO : 0; |
| 483 | bio_endio(buf->bio, buf->bio->bi_size, n); | 478 | bio_endio(buf->bio, buf->bio->bi_size, n); |
diff --git a/drivers/block/genhd.c b/drivers/block/genhd.c index 486ce1fdeb8c..54aec4a1ae13 100644 --- a/drivers/block/genhd.c +++ b/drivers/block/genhd.c | |||
| @@ -391,13 +391,12 @@ static ssize_t disk_stats_read(struct gendisk * disk, char *page) | |||
| 391 | "%8u %8u %8llu %8u " | 391 | "%8u %8u %8llu %8u " |
| 392 | "%8u %8u %8u" | 392 | "%8u %8u %8u" |
| 393 | "\n", | 393 | "\n", |
| 394 | disk_stat_read(disk, reads), disk_stat_read(disk, read_merges), | 394 | disk_stat_read(disk, ios[0]), disk_stat_read(disk, merges[0]), |
| 395 | (unsigned long long)disk_stat_read(disk, read_sectors), | 395 | (unsigned long long)disk_stat_read(disk, sectors[0]), |
| 396 | jiffies_to_msecs(disk_stat_read(disk, read_ticks)), | 396 | jiffies_to_msecs(disk_stat_read(disk, ticks[0])), |
| 397 | disk_stat_read(disk, writes), | 397 | disk_stat_read(disk, ios[1]), disk_stat_read(disk, merges[1]), |
| 398 | disk_stat_read(disk, write_merges), | 398 | (unsigned long long)disk_stat_read(disk, sectors[1]), |
| 399 | (unsigned long long)disk_stat_read(disk, write_sectors), | 399 | jiffies_to_msecs(disk_stat_read(disk, ticks[1])), |
| 400 | jiffies_to_msecs(disk_stat_read(disk, write_ticks)), | ||
| 401 | disk->in_flight, | 400 | disk->in_flight, |
| 402 | jiffies_to_msecs(disk_stat_read(disk, io_ticks)), | 401 | jiffies_to_msecs(disk_stat_read(disk, io_ticks)), |
| 403 | jiffies_to_msecs(disk_stat_read(disk, time_in_queue))); | 402 | jiffies_to_msecs(disk_stat_read(disk, time_in_queue))); |
| @@ -583,12 +582,12 @@ static int diskstats_show(struct seq_file *s, void *v) | |||
| 583 | preempt_enable(); | 582 | preempt_enable(); |
| 584 | seq_printf(s, "%4d %4d %s %u %u %llu %u %u %u %llu %u %u %u %u\n", | 583 | seq_printf(s, "%4d %4d %s %u %u %llu %u %u %u %llu %u %u %u %u\n", |
| 585 | gp->major, n + gp->first_minor, disk_name(gp, n, buf), | 584 | gp->major, n + gp->first_minor, disk_name(gp, n, buf), |
| 586 | disk_stat_read(gp, reads), disk_stat_read(gp, read_merges), | 585 | disk_stat_read(gp, ios[0]), disk_stat_read(gp, merges[0]), |
| 587 | (unsigned long long)disk_stat_read(gp, read_sectors), | 586 | (unsigned long long)disk_stat_read(gp, sectors[0]), |
| 588 | jiffies_to_msecs(disk_stat_read(gp, read_ticks)), | 587 | jiffies_to_msecs(disk_stat_read(gp, ticks[0])), |
| 589 | disk_stat_read(gp, writes), disk_stat_read(gp, write_merges), | 588 | disk_stat_read(gp, ios[1]), disk_stat_read(gp, merges[1]), |
| 590 | (unsigned long long)disk_stat_read(gp, write_sectors), | 589 | (unsigned long long)disk_stat_read(gp, sectors[1]), |
| 591 | jiffies_to_msecs(disk_stat_read(gp, write_ticks)), | 590 | jiffies_to_msecs(disk_stat_read(gp, ticks[1])), |
| 592 | gp->in_flight, | 591 | gp->in_flight, |
| 593 | jiffies_to_msecs(disk_stat_read(gp, io_ticks)), | 592 | jiffies_to_msecs(disk_stat_read(gp, io_ticks)), |
| 594 | jiffies_to_msecs(disk_stat_read(gp, time_in_queue))); | 593 | jiffies_to_msecs(disk_stat_read(gp, time_in_queue))); |
| @@ -601,8 +600,8 @@ static int diskstats_show(struct seq_file *s, void *v) | |||
| 601 | seq_printf(s, "%4d %4d %s %u %u %u %u\n", | 600 | seq_printf(s, "%4d %4d %s %u %u %u %u\n", |
| 602 | gp->major, n + gp->first_minor + 1, | 601 | gp->major, n + gp->first_minor + 1, |
| 603 | disk_name(gp, n + 1, buf), | 602 | disk_name(gp, n + 1, buf), |
| 604 | hd->reads, hd->read_sectors, | 603 | hd->ios[0], hd->sectors[0], |
| 605 | hd->writes, hd->write_sectors); | 604 | hd->ios[1], hd->sectors[1]); |
| 606 | } | 605 | } |
| 607 | 606 | ||
| 608 | return 0; | 607 | return 0; |
diff --git a/drivers/block/ll_rw_blk.c b/drivers/block/ll_rw_blk.c index 0af73512b9a8..2747741677fb 100644 --- a/drivers/block/ll_rw_blk.c +++ b/drivers/block/ll_rw_blk.c | |||
| @@ -2387,16 +2387,9 @@ static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io) | |||
| 2387 | if (!blk_fs_request(rq) || !rq->rq_disk) | 2387 | if (!blk_fs_request(rq) || !rq->rq_disk) |
| 2388 | return; | 2388 | return; |
| 2389 | 2389 | ||
| 2390 | if (rw == READ) { | 2390 | if (!new_io) { |
| 2391 | __disk_stat_add(rq->rq_disk, read_sectors, nr_sectors); | 2391 | __disk_stat_inc(rq->rq_disk, merges[rw]); |
| 2392 | if (!new_io) | 2392 | } else { |
| 2393 | __disk_stat_inc(rq->rq_disk, read_merges); | ||
| 2394 | } else if (rw == WRITE) { | ||
| 2395 | __disk_stat_add(rq->rq_disk, write_sectors, nr_sectors); | ||
| 2396 | if (!new_io) | ||
| 2397 | __disk_stat_inc(rq->rq_disk, write_merges); | ||
| 2398 | } | ||
| 2399 | if (new_io) { | ||
| 2400 | disk_round_stats(rq->rq_disk); | 2393 | disk_round_stats(rq->rq_disk); |
| 2401 | rq->rq_disk->in_flight++; | 2394 | rq->rq_disk->in_flight++; |
| 2402 | } | 2395 | } |
| @@ -2791,17 +2784,11 @@ static inline void blk_partition_remap(struct bio *bio) | |||
| 2791 | 2784 | ||
| 2792 | if (bdev != bdev->bd_contains) { | 2785 | if (bdev != bdev->bd_contains) { |
| 2793 | struct hd_struct *p = bdev->bd_part; | 2786 | struct hd_struct *p = bdev->bd_part; |
| 2787 | const int rw = bio_data_dir(bio); | ||
| 2788 | |||
| 2789 | p->sectors[rw] += bio_sectors(bio); | ||
| 2790 | p->ios[rw]++; | ||
| 2794 | 2791 | ||
| 2795 | switch (bio_data_dir(bio)) { | ||
| 2796 | case READ: | ||
| 2797 | p->read_sectors += bio_sectors(bio); | ||
| 2798 | p->reads++; | ||
| 2799 | break; | ||
| 2800 | case WRITE: | ||
| 2801 | p->write_sectors += bio_sectors(bio); | ||
| 2802 | p->writes++; | ||
| 2803 | break; | ||
| 2804 | } | ||
| 2805 | bio->bi_sector += p->start_sect; | 2792 | bio->bi_sector += p->start_sect; |
| 2806 | bio->bi_bdev = bdev->bd_contains; | 2793 | bio->bi_bdev = bdev->bd_contains; |
| 2807 | } | 2794 | } |
| @@ -3048,6 +3035,12 @@ static int __end_that_request_first(struct request *req, int uptodate, | |||
| 3048 | (unsigned long long)req->sector); | 3035 | (unsigned long long)req->sector); |
| 3049 | } | 3036 | } |
| 3050 | 3037 | ||
| 3038 | if (blk_fs_request(req) && req->rq_disk) { | ||
| 3039 | const int rw = rq_data_dir(req); | ||
| 3040 | |||
| 3041 | __disk_stat_add(req->rq_disk, sectors[rw], nr_bytes >> 9); | ||
| 3042 | } | ||
| 3043 | |||
| 3051 | total_bytes = bio_nbytes = 0; | 3044 | total_bytes = bio_nbytes = 0; |
| 3052 | while ((bio = req->bio) != NULL) { | 3045 | while ((bio = req->bio) != NULL) { |
| 3053 | int nbytes; | 3046 | int nbytes; |
| @@ -3176,16 +3169,10 @@ void end_that_request_last(struct request *req) | |||
| 3176 | 3169 | ||
| 3177 | if (disk && blk_fs_request(req)) { | 3170 | if (disk && blk_fs_request(req)) { |
| 3178 | unsigned long duration = jiffies - req->start_time; | 3171 | unsigned long duration = jiffies - req->start_time; |
| 3179 | switch (rq_data_dir(req)) { | 3172 | const int rw = rq_data_dir(req); |
| 3180 | case WRITE: | 3173 | |
| 3181 | __disk_stat_inc(disk, writes); | 3174 | __disk_stat_inc(disk, ios[rw]); |
| 3182 | __disk_stat_add(disk, write_ticks, duration); | 3175 | __disk_stat_add(disk, ticks[rw], duration); |
| 3183 | break; | ||
| 3184 | case READ: | ||
| 3185 | __disk_stat_inc(disk, reads); | ||
| 3186 | __disk_stat_add(disk, read_ticks, duration); | ||
| 3187 | break; | ||
| 3188 | } | ||
| 3189 | disk_round_stats(disk); | 3176 | disk_round_stats(disk); |
| 3190 | disk->in_flight--; | 3177 | disk->in_flight--; |
| 3191 | } | ||
