• Jan Kara's avatar
    blktrace: Avoid sparse warnings when assigning q->blk_trace · c3dbe541
    Jan Kara authored
    Mostly for historical reasons, q->blk_trace is assigned through xchg()
    and cmpxchg() atomic operations. Although this is correct, sparse
    complains about this because it violates rcu annotations since commit
    c780e86d ("blktrace: Protect q->blk_trace with RCU") which started
    to use rcu for accessing q->blk_trace. Furthermore there's no real need
    for atomic operations anymore since all changes to q->blk_trace happen
    under q->blk_trace_mutex and since it also makes more sense to check if
    q->blk_trace is set with the mutex held earlier.
    
    So let's just replace xchg() with rcu_replace_pointer() and cmpxchg()
    with explicit check and rcu_assign_pointer(). This makes the code more
    efficient and sparse happy.
    Reported-by: default avatarkbuild test robot <lkp@intel.com>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    c3dbe541
blktrace.c 46.8 KB