On 3/27/2024 10:51 PM, Christoph Hellwig wrote: > Drivers might have to perform complex actions to determine queue limits, > and those might fail. Add a helper to cancel a queue limit update > that can be called in those cases. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > include/linux/blkdev.h | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h > index f9b87c39cab047..39fedc8ef9c41f 100644 > --- a/include/linux/blkdev.h > +++ b/include/linux/blkdev.h > @@ -892,6 +892,19 @@ int queue_limits_commit_update(struct request_queue *q, > struct queue_limits *lim); > int queue_limits_set(struct request_queue *q, struct queue_limits *lim); > > +/** > + * queue_limits_cancel_update - cancel an atomic update of queue limits > + * @q: queue to update > + * > + * This functions cancels an atomic update of the queue limits started by > + * queue_limits_start_update() and should be used when an error occurs after > + * starting update. > + */ > +static inline void queue_limits_cancel_update(struct request_queue *q) > +{ > + mutex_lock(&q->limits_lock); mutex_unlock is needed here.