Messages in this thread Patch in this message | | | From | "Matthew Wilcox (Oracle)" <> | Subject | [PATCH] mm: Fix sparse warnings in backing-dev.h | Date | Fri, 23 Jun 2023 18:07:37 +0100 |
| |
Sparse reports a context imbalance, and indeed _begin() returns with the RCU lock held and _end() releases it. Reassure sparse that this is fine by adding appropriate annotations.
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- include/linux/backing-dev.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index fbad4fcd408e..69bb13412a3e 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -284,8 +284,9 @@ static inline struct bdi_writeback *inode_to_wb_wbc( * can't sleep during the transaction. IRQs may or may not be disabled on * return. */ -static inline struct bdi_writeback * -unlocked_inode_to_wb_begin(struct inode *inode, struct wb_lock_cookie *cookie) +static inline +struct bdi_writeback *unlocked_inode_to_wb_begin(struct inode *inode, + struct wb_lock_cookie *cookie) __acquires(RCU) { rcu_read_lock(); @@ -311,7 +312,7 @@ unlocked_inode_to_wb_begin(struct inode *inode, struct wb_lock_cookie *cookie) * @cookie: @cookie from unlocked_inode_to_wb_begin() */ static inline void unlocked_inode_to_wb_end(struct inode *inode, - struct wb_lock_cookie *cookie) + struct wb_lock_cookie *cookie) __releases(RCU) { if (unlikely(cookie->locked)) xa_unlock_irqrestore(&inode->i_mapping->i_pages, cookie->flags); -- 2.39.2
| |