aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/aoe/aoecmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/aoe/aoecmd.c')
-rw-r--r--drivers/block/aoe/aoecmd.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
index 2f1746295d06..961d29a53cab 100644
--- a/drivers/block/aoe/aoecmd.c
+++ b/drivers/block/aoe/aoecmd.c
@@ -645,7 +645,7 @@ aoecmd_sleepwork(struct work_struct *work)
645 unsigned long flags; 645 unsigned long flags;
646 u64 ssize; 646 u64 ssize;
647 647
648 ssize = d->gd->capacity; 648 ssize = get_capacity(d->gd);
649 bd = bdget_disk(d->gd, 0); 649 bd = bdget_disk(d->gd, 0);
650 650
651 if (bd) { 651 if (bd) {
@@ -707,7 +707,7 @@ ataid_complete(struct aoedev *d, struct aoetgt *t, unsigned char *id)
707 if (d->flags & (DEVFL_GDALLOC|DEVFL_NEWSIZE)) 707 if (d->flags & (DEVFL_GDALLOC|DEVFL_NEWSIZE))
708 return; 708 return;
709 if (d->gd != NULL) { 709 if (d->gd != NULL) {
710 d->gd->capacity = ssize; 710 set_capacity(d->gd, ssize);
711 d->flags |= DEVFL_NEWSIZE; 711 d->flags |= DEVFL_NEWSIZE;
712 } else 712 } else
713 d->flags |= DEVFL_GDALLOC; 713 d->flags |= DEVFL_GDALLOC;
@@ -756,12 +756,17 @@ diskstats(struct gendisk *disk, struct bio *bio, ulong duration, sector_t sector
756 unsigned long n_sect = bio->bi_size >> 9; 756 unsigned long n_sect = bio->bi_size >> 9;
757 const int rw = bio_data_dir(bio); 757 const int rw = bio_data_dir(bio);
758 struct hd_struct *part; 758 struct hd_struct *part;
759 int cpu;
759 760
760 part = get_part(disk, sector); 761 cpu = part_stat_lock();
761 all_stat_inc(disk, part, ios[rw], sector); 762 part = disk_map_sector_rcu(disk, sector);
762 all_stat_add(disk, part, ticks[rw], duration, sector); 763
763 all_stat_add(disk, part, sectors[rw], n_sect, sector); 764 part_stat_inc(cpu, part, ios[rw]);
764 all_stat_add(disk, part, io_ticks, duration, sector); 765 part_stat_add(cpu, part, ticks[rw], duration);
766 part_stat_add(cpu, part, sectors[rw], n_sect);
767 part_stat_add(cpu, part, io_ticks, duration);
768
769 part_stat_unlock();
765} 770}
766 771
767void 772void