]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
block/mq-deadline: Make the lock context annotations compatible with Clang
authorBart Van Assche <bvanassche@acm.org>
Fri, 5 Jun 2026 18:01:06 +0000 (11:01 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 5 Jun 2026 19:41:11 +0000 (13:41 -0600)
While sparse ignores the __acquires() and __releases() arguments, Clang
verifies these. Make the arguments of __acquires() and __releases()
acceptable for Clang.

Reviewed-by: Hannes Reinecke <hare@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Link: https://patch.msgid.link/3b6e336ced91e27213608ffce205ccd24f4ba285.1780682325.git.bvanassche@acm.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/mq-deadline.c

index 95917a88976f4084a4385562f6eba50ad66dd3f5..824bfc17b2c68d9e10f58ff5c07081ce5aab1528 100644 (file)
@@ -794,11 +794,15 @@ static const struct elv_fs_entry deadline_attrs[] = {
        __ATTR_NULL
 };
 
+#define RQ_FROM_SEQ_FILE(m) ((struct request_queue *)(m)->private)
+#define DD_DATA_FROM_RQ(rq)                                    \
+       ((struct deadline_data *)(rq)->elevator->elevator_data)
+
 #ifdef CONFIG_BLK_DEBUG_FS
 #define DEADLINE_DEBUGFS_DDIR_ATTRS(prio, data_dir, name)              \
 static void *deadline_##name##_fifo_start(struct seq_file *m,          \
                                          loff_t *pos)                  \
-       __acquires(&dd->lock)                                           \
+       __acquires(&DD_DATA_FROM_RQ(RQ_FROM_SEQ_FILE(m))->lock)         \
 {                                                                      \
        struct request_queue *q = m->private;                           \
        struct deadline_data *dd = q->elevator->elevator_data;          \
@@ -819,7 +823,7 @@ static void *deadline_##name##_fifo_next(struct seq_file *m, void *v,       \
 }                                                                      \
                                                                        \
 static void deadline_##name##_fifo_stop(struct seq_file *m, void *v)   \
-       __releases(&dd->lock)                                           \
+       __releases(&DD_DATA_FROM_RQ(RQ_FROM_SEQ_FILE(m))->lock)         \
 {                                                                      \
        struct request_queue *q = m->private;                           \
        struct deadline_data *dd = q->elevator->elevator_data;          \
@@ -921,7 +925,7 @@ static int dd_owned_by_driver_show(void *data, struct seq_file *m)
 }
 
 static void *deadline_dispatch_start(struct seq_file *m, loff_t *pos)
-       __acquires(&dd->lock)
+       __acquires(&DD_DATA_FROM_RQ(RQ_FROM_SEQ_FILE(m))->lock)
 {
        struct request_queue *q = m->private;
        struct deadline_data *dd = q->elevator->elevator_data;
@@ -939,7 +943,7 @@ static void *deadline_dispatch_next(struct seq_file *m, void *v, loff_t *pos)
 }
 
 static void deadline_dispatch_stop(struct seq_file *m, void *v)
-       __releases(&dd->lock)
+       __releases(&DD_DATA_FROM_RQ(RQ_FROM_SEQ_FILE(m))->lock)
 {
        struct request_queue *q = m->private;
        struct deadline_data *dd = q->elevator->elevator_data;