History

Merge tag 'block-5.6-2020-02-28' of git://git.kernel.dk/linux-block

Pull block fixes from Jens Axboe: - Passthrough insertion fix (Ming) - Kill off some unused arguments (John) - blktrace RCU fix (Jan) - Dead fields removal for null_blk (Dongli) - NVMe polled IO fix (Bijan) * tag 'block-5.6-2020-02-28' of git://git.kernel.dk/linux-block: nvme-pci: Hold cq_poll_lock while completing CQEs blk-mq: Remove some unused function arguments null_blk: remove unused fields in 'nullb_cmd' blktrace: Protect q->blk_trace with RCU blk-mq: insert passthrough request into hctx->dispatch directly

Linus Torvalds committed 6 years ago

Commit 2edc78b2 parents 74dea5d 5b8ea5812 files · +136 −70Browse files

Showing the changes to include/linux (2 of 12 files). Show all

Unified · Split

2 files
  1. include/linux/blkdev.h +1 −1
  2. include/linux/blktrace_api.h +13 −5
include/linux/blkdev.h+1−1
@@ -524,7 +524,7 @@ struct request_queue { · 523 unmodified lines
524 unsigned int sg_reserved_size;524 unsigned int sg_reserved_size;
525 int node;525 int node;
526#ifdef CONFIG_BLK_DEV_IO_TRACE526#ifdef CONFIG_BLK_DEV_IO_TRACE
527 struct blk_trace *blk_trace;527 struct blk_trace __rcu *blk_trace;
528 struct mutex blk_trace_mutex;528 struct mutex blk_trace_mutex;
529#endif529#endif
530 /*530 /*
include/linux/blktrace_api.h+13−5
@@ -51,9 +51,13 @@ void __trace_note_message(struct blk_trace *, struct blkcg *blkcg, const char *f · 50 unmodified lines
51 **/51 **/
52#define blk_add_cgroup_trace_msg(q, cg, fmt, ...) \52#define blk_add_cgroup_trace_msg(q, cg, fmt, ...) \
53 do { \53 do { \
54 struct blk_trace *bt = (q)->blk_trace; \54 struct blk_trace *bt; \
55 \
56 rcu_read_lock(); \
57 bt = rcu_dereference((q)->blk_trace); \
55 if (unlikely(bt)) \58 if (unlikely(bt)) \
56 __trace_note_message(bt, cg, fmt, ##__VA_ARGS__);\59 __trace_note_message(bt, cg, fmt, ##__VA_ARGS__);\
60 rcu_read_unlock(); \
57 } while (0)61 } while (0)
58#define blk_add_trace_msg(q, fmt, ...) \62#define blk_add_trace_msg(q, fmt, ...) \
59 blk_add_cgroup_trace_msg(q, NULL, fmt, ##__VA_ARGS__)63 blk_add_cgroup_trace_msg(q, NULL, fmt, ##__VA_ARGS__)
@@ -61,10 +65,14 @@ void __trace_note_message(struct blk_trace *, struct blkcg *blkcg, const char *f · 1 unmodified line
61 65
62static inline bool blk_trace_note_message_enabled(struct request_queue *q)66static inline bool blk_trace_note_message_enabled(struct request_queue *q)
63{67{
64 struct blk_trace *bt = q->blk_trace;68 struct blk_trace *bt;
65 if (likely(!bt))69 bool ret;
66 return false;70
67 return bt->act_mask & BLK_TC_NOTIFY;71 rcu_read_lock();
72 bt = rcu_dereference(q->blk_trace);
73 ret = bt && (bt->act_mask & BLK_TC_NOTIFY);
74 rcu_read_unlock();
75 return ret;
68}76}
69 77
70extern void blk_add_driver_data(struct request_queue *q, struct request *rq,78extern void blk_add_driver_data(struct request_queue *q, struct request *rq,