Re: [f2fs-dev] [PATCH v2] f2fs: ratelimit recovery messages

From: Joe Perches
Date: Tue May 28 2019 - 07:08:48 EST


On Tue, 2019-05-28 at 15:37 +0800, Chao Yu wrote:
[]
> > > > > > diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
[]
> > > > > > @@ -188,8 +188,8 @@ static int recover_dentry(struct inode *inode, struct page *ipage,
> > > > > > name = "<encrypted>";
> > > > > > else
> > > > > > name = raw_inode->i_name;
> > > > > > - f2fs_msg(inode->i_sb, KERN_NOTICE,
> > > > > > - "%s: ino = %x, name = %s, dir = %lx, err = %d",
> > > > > > + printk_ratelimited(KERN_NOTICE
> > > > > > + "%s: ino = %x, name = %s, dir = %lx, err = %d\n",
> > > > > > __func__, ino_of_node(ipage), name,
> > > > > > IS_ERR(dir) ? 0 : dir->i_ino, err);

Probably better to add and use a f2fs_msg_ratelimited macro.

And the generic f2fs_msg should add printf
format and argument verification.
---
fs/f2fs/f2fs.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 9b3d9977cd1e..2373bc3cb267 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -1798,6 +1798,7 @@ static inline int inc_valid_block_count(struct f2fs_sb_info *sbi,
return -ENOSPC;
}

+__printf(3, 4)
void f2fs_msg(struct super_block *sb, const char *level, const char *fmt, ...);
static inline void dec_valid_block_count(struct f2fs_sb_info *sbi,
struct inode *inode,