]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/block/aoe/aoecmd.c
block: fix disk->part[] dereferencing race
[linux-2.6-omap-h63xx.git] / drivers / block / aoe / aoecmd.c
index 885d1409521f63d8156bfc41fbfad5a72804e103..84c03d65dcc5e5fb930200e091656fe0fb08df41 100644 (file)
@@ -757,11 +757,15 @@ diskstats(struct gendisk *disk, struct bio *bio, ulong duration, sector_t sector
        const int rw = bio_data_dir(bio);
        struct hd_struct *part;
 
-       part = disk_map_sector(disk, sector);
+       rcu_read_lock();
+
+       part = disk_map_sector_rcu(disk, sector);
        all_stat_inc(disk, part, ios[rw], sector);
        all_stat_add(disk, part, ticks[rw], duration, sector);
        all_stat_add(disk, part, sectors[rw], n_sect, sector);
        all_stat_add(disk, part, io_ticks, duration, sector);
+
+       rcu_read_unlock();
 }
 
 void