提交 c6d8e7da 编写于 作者: Z zhangyi (F) 提交者: Cheng Jian

block_dump: remove block_dump feature when dirting inode

hulk inclusion
category: bugfix
bugzilla: 48166
CVE: NA
---------------------------

block_dump is an old debugging interface, one of it's functions is used
to dump who write which file on disk. If block_dump is enabled, we can
turn on debug log level and gather information about write process name
file name from kmsg. It is done by block_dump___mark_inode_dirty() to
print kernel message directly when marking inode dirty, so it can
trigger log storm easily.

After tracepoints has been introduced into the kernel, we got
trace_writeback_mark_inode_dirty() in __mark_inode_dirty(), which is a
better replacement of block_dump___mark_inode_dirty(). The only downside
is that it only trace the inode number and not a file name, but it may
not a big deal because the original dumped file name in block_dump is
not accurate in some cases, and we can still find it through the inode
number and device id. So this patch delete the block_dump feature.
Signed-off-by: Nzhangyi (F) <yi.zhang@huawei.com>
Reviewed-by: NYe bin <yebin10@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
Signed-off-by: NCheng Jian <cj.chengjian@huawei.com>
上级 4ee276d0
...@@ -2117,28 +2117,6 @@ int dirtytime_interval_handler(struct ctl_table *table, int write, ...@@ -2117,28 +2117,6 @@ int dirtytime_interval_handler(struct ctl_table *table, int write,
return ret; return ret;
} }
static noinline void block_dump___mark_inode_dirty(struct inode *inode)
{
if (inode->i_ino || strcmp(inode->i_sb->s_id, "bdev")) {
struct dentry *dentry;
const char *name = "?";
dentry = d_find_alias(inode);
if (dentry) {
spin_lock(&dentry->d_lock);
name = (const char *) dentry->d_name.name;
}
printk(KERN_DEBUG
"%s(%d): dirtied inode %lu (%s) on %s\n",
current->comm, task_pid_nr(current), inode->i_ino,
name, inode->i_sb->s_id);
if (dentry) {
spin_unlock(&dentry->d_lock);
dput(dentry);
}
}
}
/** /**
* __mark_inode_dirty - internal function * __mark_inode_dirty - internal function
* *
...@@ -2198,9 +2176,6 @@ void __mark_inode_dirty(struct inode *inode, int flags) ...@@ -2198,9 +2176,6 @@ void __mark_inode_dirty(struct inode *inode, int flags)
(dirtytime && (inode->i_state & I_DIRTY_INODE))) (dirtytime && (inode->i_state & I_DIRTY_INODE)))
return; return;
if (unlikely(block_dump))
block_dump___mark_inode_dirty(inode);
spin_lock(&inode->i_lock); spin_lock(&inode->i_lock);
if (dirtytime && (inode->i_state & I_DIRTY_INODE)) if (dirtytime && (inode->i_state & I_DIRTY_INODE))
goto out_unlock_inode; goto out_unlock_inode;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册