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: > 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@xxxxxxxxxxxxxxxxxx> > Cc: Christian Brauner <brauner@xxxxxxxxxx> > Cc: Jeff Layton <jlayton@xxxxxxxxxx> > Cc: Josef Bacik <josef@xxxxxxxxxxxxxx> > Signed-off-by: Mickaël Salaün <mic@xxxxxxxxxxx> > Link: https://lore.kernel.org/r/20250108154338.1129069-28-mic@xxxxxxxxxxx > --- > > 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 > >