From: Jan Kara <jack@xxxxxxx> inode_to_wb() is used also for filesystems that don't support cgroup writeback. For these filesystems inode->i_wb is stable during the lifetime of the inode (it points to bdi->wb) and there's no need to hold locks protecting the inode->i_wb dereference. Improve the warning in inode_to_wb() to not trigger for these filesystems. Signed-off-by: Jan Kara <jack@xxxxxxx> Reviewed-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx> --- include/linux/backing-dev.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 8e7af9a03b41..b503a9a4fa65 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -245,10 +245,11 @@ wb_get_create_current(struct backing_dev_info *bdi, gfp_t gfp) * holding either @inode->i_lock, the i_pages lock, or the * associated wb's list_lock. */ -static inline struct bdi_writeback *inode_to_wb(const struct inode *inode) +static inline struct bdi_writeback *inode_to_wb(struct inode *inode) { #ifdef CONFIG_LOCKDEP WARN_ON_ONCE(debug_locks && + (inode->i_sb->s_iflags & SB_I_CGROUPWB) && (!lockdep_is_held(&inode->i_lock) && !lockdep_is_held(&inode->i_mapping->i_pages.xa_lock) && !lockdep_is_held(&inode->i_wb->list_lock))); -- 2.48.1