Re: [PATCH v4 27/30] fs: Add iput() cleanup helper
From: Mickaël Salaün <mic@digikod.net>
Date: 2025-01-13 11:15:15
Also in:
linux-fsdevel, lkml
Al, Christian, this standalone patch could be useful to others. Feel free to pick it in your tree. On Wed, Jan 08, 2025 at 04:43:35PM +0100, Mickaël Salaün wrote:
quoted hunk ↗ jump to hunk
Add a simple scope-based helper to put an inode reference, similar to the fput() helper. This is used in a following commit. Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Christian Brauner <brauner@kernel.org> Cc: Jeff Layton <jlayton@kernel.org> Cc: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Mickaël Salaün <mic@digikod.net> Link: https://lore.kernel.org/r/20250108154338.1129069-28-mic@digikod.net (local) --- Changes since v3: - New patch. --- include/linux/fs.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)diff --git a/include/linux/fs.h b/include/linux/fs.h index 7e29433c5ecc..bd5a28b0871f 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h@@ -47,6 +47,8 @@ #include <linux/rw_hint.h> #include <linux/file_ref.h> #include <linux/unicode.h> +#include <linux/cleanup.h> +#include <linux/err.h> #include <asm/byteorder.h> #include <uapi/linux/fs.h>@@ -2698,6 +2700,8 @@ extern void iput(struct inode *); int inode_update_timestamps(struct inode *inode, int flags); int generic_update_time(struct inode *, int); +DEFINE_FREE(iput, struct inode *, if (!IS_ERR_OR_NULL(_T)) iput(_T)) + /* /sys/fs */ extern struct kobject *fs_kobj;@@ -3108,8 +3112,6 @@ static inline bool is_dot_dotdot(const char *name, size_t len) (len == 1 || (len == 2 && name[1] == '.')); } -#include <linux/err.h> - /* needed for stackable file system support */ extern loff_t default_llseek(struct file *file, loff_t offset, int whence);-- 2.47.1