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>
{
int error;
+ lockdep_assert_held(&q->limits_lock);
+
error = blk_validate_limits(lim);
if (error)
goto out_unlock;