]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
block: add lockdep to queue_limits_commit_update()
authorChaitanya Kulkarni <ckulkarnilinux@gmail.com>
Sun, 9 Nov 2025 07:44:26 +0000 (23:44 -0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 11 Nov 2025 14:51:08 +0000 (07:51 -0700)
queue_limits_commit_update() expects q->limits_lock to be held by
the caller (via queue_limits_start_update()).

The API pattern is:

  lim = queue_limits_start_update(q);  /* acquires lock */
              /* modify lim */
  queue_limits_commit_update(q, &lim); /* releases lock */

  OR

  queue_limits_commit_update_frozen(q, &lim);
   lim = queue_limits_start_update(q); /* acquires lock */
  queue_limits_commit_update(q, &lim); /* releases lock */

Add lockdep_assert_held() to report incorrect API usage.

Signed-off-by: Chaitanya Kulkarni <ckulkarnilinux@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-settings.c

index e0d0b035f39d24581f600e74f298521c136d6623..b38e94c85402a5e60510d2a75603829505493dea 100644 (file)
@@ -546,6 +546,8 @@ int queue_limits_commit_update(struct request_queue *q,
 {
        int error;
 
+       lockdep_assert_held(&q->limits_lock);
+
        error = blk_validate_limits(lim);
        if (error)
                goto out_unlock;