diff options
Diffstat (limited to 'drivers/block/aoe/aoecmd.c')
-rw-r--r-- | drivers/block/aoe/aoecmd.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index 885d1409521f..84c03d65dcc5 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c | |||
@@ -757,11 +757,15 @@ diskstats(struct gendisk *disk, struct bio *bio, ulong duration, sector_t sector | |||
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 | 759 | ||
760 | part = disk_map_sector(disk, sector); | 760 | rcu_read_lock(); |
761 | |||
762 | part = disk_map_sector_rcu(disk, sector); | ||
761 | all_stat_inc(disk, part, ios[rw], sector); | 763 | all_stat_inc(disk, part, ios[rw], sector); |
762 | all_stat_add(disk, part, ticks[rw], duration, sector); | 764 | all_stat_add(disk, part, ticks[rw], duration, sector); |
763 | all_stat_add(disk, part, sectors[rw], n_sect, sector); | 765 | all_stat_add(disk, part, sectors[rw], n_sect, sector); |
764 | all_stat_add(disk, part, io_ticks, duration, sector); | 766 | all_stat_add(disk, part, io_ticks, duration, sector); |
767 | |||
768 | rcu_read_unlock(); | ||
765 | } | 769 | } |
766 | 770 | ||
767 | void | 771 | void |