summaryrefslogtreecommitdiff
path: root/include/linux/part_stat.h
diff options
context:
space:
mode:
authorKonstantin Khlebnikov <khlebnikov@yandex-team.ru>2020-05-27 08:24:17 +0300
committerJens Axboe <axboe@kernel.dk>2020-05-27 14:21:23 +0300
commit8ab1d40a646e753adb6814642432a093d93dbf47 (patch)
treef70e9ee9cc1ea5823cba3865f380a597ef5db3ca /include/linux/part_stat.h
parentb5af37ab3a2b143e278340d2c6fa5790d53817e7 (diff)
downloadlinux-8ab1d40a646e753adb6814642432a093d93dbf47.tar.xz
block: remove rcu_read_lock() from part_stat_lock()
The RCU lock is required only in disk_map_sector_rcu() to lookup the partition. After that request holds reference to related hd_struct. Replace get_cpu() with preempt_disable() - returned cpu index is unused. [hch: rebased] Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/linux/part_stat.h')
-rw-r--r--include/linux/part_stat.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/part_stat.h b/include/linux/part_stat.h
index 6644197980b9..a6b0938ce82e 100644
--- a/include/linux/part_stat.h
+++ b/include/linux/part_stat.h
@@ -21,8 +21,8 @@ struct disk_stats {
*
* part_stat_read() can be called at any time.
*/
-#define part_stat_lock() ({ rcu_read_lock(); get_cpu(); })
-#define part_stat_unlock() do { put_cpu(); rcu_read_unlock(); } while (0)
+#define part_stat_lock() preempt_disable()
+#define part_stat_unlock() preempt_enable()
#define part_stat_get_cpu(part, field, cpu) \
(per_cpu_ptr((part)->dkstats, (cpu))->field)