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

Reply via email to