ramfs: support O_TMPFILE
authorAlexey Dobriyan <adobriyan@gmail.com>
Wed, 24 Feb 2021 20:00:51 +0000 (12:00 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 24 Feb 2021 21:38:26 +0000 (13:38 -0800)
[akpm@linux-foundation.org: update inode_operations.tmpfile]

Link: http://lkml.kernel.org/r/20190206073349.GA15311@avx2
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/ramfs/inode.c

index 3c2658c..9ebd17d 100644 (file)
@@ -151,6 +151,18 @@ static int ramfs_symlink(struct user_namespace *mnt_userns, struct inode *dir,
        return error;
 }
 
+static int ramfs_tmpfile(struct user_namespace *mnt_userns,
+                        struct inode *dir, struct dentry *dentry, umode_t mode)
+{
+       struct inode *inode;
+
+       inode = ramfs_get_inode(dir->i_sb, dir, mode, 0);
+       if (!inode)
+               return -ENOSPC;
+       d_tmpfile(dentry, inode);
+       return 0;
+}
+
 static const struct inode_operations ramfs_dir_inode_operations = {
        .create         = ramfs_create,
        .lookup         = simple_lookup,
@@ -161,6 +173,7 @@ static const struct inode_operations ramfs_dir_inode_operations = {
        .rmdir          = simple_rmdir,
        .mknod          = ramfs_mknod,
        .rename         = simple_rename,
+       .tmpfile        = ramfs_tmpfile,
 };
 
 /*