From: Jeongtae Park <jtp.p...@samsung.com> This patch adds a new scope based f2fs_putname() cleanup to reduce the chances of forgetting a f2fs_putname(). And doing so removes a goto statement for error handling.
Signed-off-by: Jeongtae Park <jtp.p...@samsung.com> --- fs/f2fs/f2fs.h | 2 ++ fs/f2fs/file.c | 8 +++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 1974b6aff397..284024c12ee5 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -3402,6 +3402,8 @@ static inline void f2fs_putname(char *buf) __putname(buf); } +DEFINE_FREE(f2fs_putname, void *, if (_T) f2fs_putname(_T)) + static inline void *f2fs_kzalloc(struct f2fs_sb_info *sbi, size_t size, gfp_t flags) { diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 5c0b281a70f3..c783d017ed28 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -4511,22 +4511,20 @@ static void f2fs_trace_rw_file_path(struct file *file, loff_t pos, size_t count, int rw) { struct inode *inode = file_inode(file); - char *buf, *path; + char *buf __free(f2fs_putname) = f2fs_getname(F2FS_I_SB(inode)); + char *path; - buf = f2fs_getname(F2FS_I_SB(inode)); if (!buf) return; path = dentry_path_raw(file_dentry(file), buf, PATH_MAX); if (IS_ERR(path)) - goto free_buf; + return; if (rw == WRITE) trace_f2fs_datawrite_start(inode, pos, count, current->pid, path, current->comm); else trace_f2fs_dataread_start(inode, pos, count, current->pid, path, current->comm); -free_buf: - f2fs_putname(buf); } static ssize_t f2fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to) -- 2.25.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel