Add the lock context annotations that are required by Clang. Signed-off-by: Bart Van Assche --- drivers/block/ublk_drv.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 4f6d9e652187..1e18bc926dff 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -374,11 +374,13 @@ static inline bool ublk_support_batch_io(const struct ublk_queue *ubq) } static inline void ublk_io_lock(struct ublk_io *io) + __acquires(&io->lock) { spin_lock(&io->lock); } static inline void ublk_io_unlock(struct ublk_io *io) + __releases(&io->lock) { spin_unlock(&io->lock); } @@ -3263,6 +3265,7 @@ static int ublk_check_fetch_buf(const struct ublk_device *ub, __u64 buf_addr) static int __ublk_fetch(struct io_uring_cmd *cmd, struct ublk_device *ub, struct ublk_io *io, u16 q_id) + __must_hold(&ub->mutex) { /* UBLK_IO_FETCH_REQ is only allowed before dev is setup */ if (ublk_dev_ready(ub)) @@ -3686,6 +3689,7 @@ static void ublk_batch_revert_prep_cmd(struct ublk_batch_io_iter *iter, static int ublk_batch_prep_io(struct ublk_queue *ubq, const struct ublk_batch_io_data *data, const struct ublk_elem_header *elem) + __must_hold(&data->ub->mutex) { struct ublk_io *io = &ubq->ios[elem->tag]; const struct ublk_batch_io *uc = &data->header; @@ -5290,6 +5294,7 @@ static int ublk_char_dev_permission(struct ublk_device *ub, * already holds ub->mutex when calling del_gendisk() which freezes the queue. */ static unsigned int ublk_lock_buf_tree(struct ublk_device *ub) + __acquires(&ub->mutex) { unsigned int memflags = 0; @@ -5301,6 +5306,7 @@ static unsigned int ublk_lock_buf_tree(struct ublk_device *ub) } static void ublk_unlock_buf_tree(struct ublk_device *ub, unsigned int memflags) + __releases(&ub->mutex) { if (ub->ub_disk) blk_mq_unfreeze_queue(ub->ub_disk->queue, memflags);