When working with percpu variables the only guarantee we need is that the process is not preempted. So let's do this by using the more idiomatic get_cpu_ptr/put_cpu_ptr rather than the more heavyweight local_irq_disable. No functional changes.
Signed-off-by: Nikolay Borisov <nikolay.bori...@virtuozzo.com> --- block/blk-cbt.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/block/blk-cbt.c b/block/blk-cbt.c index 8baeb2804a61..d49ca7fc2865 100644 --- a/block/blk-cbt.c +++ b/block/blk-cbt.c @@ -238,17 +238,16 @@ static void blk_cbt_add(struct request_queue *q, blkcnt_t start, blkcnt_t len) __blk_cbt_set(cbt, start, len, 1, 1, NULL, NULL); goto out_rcu; } - local_irq_disable(); - ex = this_cpu_ptr(cbt->cache); + ex = get_cpu_ptr(cbt->cache); if (ex->start + ex->len == start) { ex->len += len; - local_irq_enable(); + put_cpu_ptr(cbt->cache); goto out_rcu; } old = *ex; ex->start = start; ex->len = len; - local_irq_enable(); + put_cpu_ptr(cbt->cache); if (likely(old.len)) __blk_cbt_set(cbt, old.start, old.len, 1, 1, NULL, NULL); -- 2.34.1 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel