]> www.infradead.org Git - nvme.git/commitdiff
writeback: fix false warning in inode_to_wb()
authorAndreas Gruenbacher <agruenba@redhat.com>
Sat, 12 Apr 2025 16:39:12 +0000 (18:39 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Apr 2025 03:10:08 +0000 (20:10 -0700)
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.

Link: https://lkml.kernel.org/r/20250412163914.3773459-3-agruenba@redhat.com
Fixes: aaa2cacf8184 ("writeback: add lockdep annotation to inode_to_wb()")
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: Andreas Gruenbacher <agruenba@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/backing-dev.h

index 8e7af9a03b41dd9261254eb4c6a74b748d625391..e721148c95d07dcfdcc6e957bff935e67b004cf5 100644 (file)
@@ -249,6 +249,7 @@ static inline struct bdi_writeback *inode_to_wb(const 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)));