[PATCH] writeback: add warning messages for not registered bdi

From: Yanjun Zhang
Date: Thu Dec 17 2020 - 06:39:57 EST


The device name is only printed for the warning case, that bdi is not
registered detected by the function __mark_inode_dirty. Besides, the
device name returned by bdi_dev_name may be "(unknown)" in some cases.

This patch add printed messages about the inode and super block. Once
trigging this warning, we could make more direct analysis.

Signed-off-by: Yanjun Zhang <zhang.yanjuna@xxxxxxx>
---
fs/fs-writeback.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index e6005c78b..825160cf4 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -2323,7 +2323,8 @@ void __mark_inode_dirty(struct inode *inode, int flags)

WARN((wb->bdi->capabilities & BDI_CAP_WRITEBACK) &&
!test_bit(WB_registered, &wb->state),
- "bdi-%s not registered\n", bdi_dev_name(wb->bdi));
+ "bdi-%s not registered, dirtied inode %lu on %s\n",
+ bdi_dev_name(wb->bdi), inode->i_ino, sb->s_id);

inode->dirtied_when = jiffies;
if (dirtytime)
--
2.17.1