Commit d56e0ddb authored by Amir Goldstein's avatar Amir Goldstein Committed by Christian Brauner

fs: rename {vfs,kernel}_tmpfile_open()

Overlayfs and cachefiles use vfs_open_tmpfile() to open a tmpfile
without accounting for nr_files.

Rename this helper to kernel_tmpfile_open() to better reflect this
helper is used for kernel internal users.
Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Message-Id: <20230615112229.2143178-2-amir73il@gmail.com>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent f1fcbaa1
...@@ -451,9 +451,9 @@ struct file *cachefiles_create_tmpfile(struct cachefiles_object *object) ...@@ -451,9 +451,9 @@ struct file *cachefiles_create_tmpfile(struct cachefiles_object *object)
ret = cachefiles_inject_write_error(); ret = cachefiles_inject_write_error();
if (ret == 0) { if (ret == 0) {
file = vfs_tmpfile_open(&nop_mnt_idmap, &parentpath, S_IFREG, file = kernel_tmpfile_open(&nop_mnt_idmap, &parentpath, S_IFREG,
O_RDWR | O_LARGEFILE | O_DIRECT, O_RDWR | O_LARGEFILE | O_DIRECT,
cache->cache_cred); cache->cache_cred);
ret = PTR_ERR_OR_ZERO(file); ret = PTR_ERR_OR_ZERO(file);
} }
if (ret) { if (ret) {
......
...@@ -3703,7 +3703,7 @@ static int vfs_tmpfile(struct mnt_idmap *idmap, ...@@ -3703,7 +3703,7 @@ static int vfs_tmpfile(struct mnt_idmap *idmap,
} }
/** /**
* vfs_tmpfile_open - open a tmpfile for kernel internal use * kernel_tmpfile_open - open a tmpfile for kernel internal use
* @idmap: idmap of the mount the inode was found from * @idmap: idmap of the mount the inode was found from
* @parentpath: path of the base directory * @parentpath: path of the base directory
* @mode: mode of the new tmpfile * @mode: mode of the new tmpfile
...@@ -3714,24 +3714,26 @@ static int vfs_tmpfile(struct mnt_idmap *idmap, ...@@ -3714,24 +3714,26 @@ static int vfs_tmpfile(struct mnt_idmap *idmap,
* hence this is only for kernel internal use, and must not be installed into * hence this is only for kernel internal use, and must not be installed into
* file tables or such. * file tables or such.
*/ */
struct file *vfs_tmpfile_open(struct mnt_idmap *idmap, struct file *kernel_tmpfile_open(struct mnt_idmap *idmap,
const struct path *parentpath, const struct path *parentpath,
umode_t mode, int open_flag, const struct cred *cred) umode_t mode, int open_flag,
const struct cred *cred)
{ {
struct file *file; struct file *file;
int error; int error;
file = alloc_empty_file_noaccount(open_flag, cred); file = alloc_empty_file_noaccount(open_flag, cred);
if (!IS_ERR(file)) { if (IS_ERR(file))
error = vfs_tmpfile(idmap, parentpath, file, mode); return file;
if (error) {
fput(file); error = vfs_tmpfile(idmap, parentpath, file, mode);
file = ERR_PTR(error); if (error) {
} fput(file);
file = ERR_PTR(error);
} }
return file; return file;
} }
EXPORT_SYMBOL(vfs_tmpfile_open); EXPORT_SYMBOL(kernel_tmpfile_open);
static int do_tmpfile(struct nameidata *nd, unsigned flags, static int do_tmpfile(struct nameidata *nd, unsigned flags,
const struct open_flags *op, const struct open_flags *op,
......
...@@ -329,8 +329,9 @@ static inline struct file *ovl_do_tmpfile(struct ovl_fs *ofs, ...@@ -329,8 +329,9 @@ static inline struct file *ovl_do_tmpfile(struct ovl_fs *ofs,
struct dentry *dentry, umode_t mode) struct dentry *dentry, umode_t mode)
{ {
struct path path = { .mnt = ovl_upper_mnt(ofs), .dentry = dentry }; struct path path = { .mnt = ovl_upper_mnt(ofs), .dentry = dentry };
struct file *file = vfs_tmpfile_open(ovl_upper_mnt_idmap(ofs), &path, mode, struct file *file = kernel_tmpfile_open(ovl_upper_mnt_idmap(ofs), &path,
O_LARGEFILE | O_WRONLY, current_cred()); mode, O_LARGEFILE | O_WRONLY,
current_cred());
int err = PTR_ERR_OR_ZERO(file); int err = PTR_ERR_OR_ZERO(file);
pr_debug("tmpfile(%pd2, 0%o) = %i\n", dentry, mode, err); pr_debug("tmpfile(%pd2, 0%o) = %i\n", dentry, mode, err);
......
...@@ -1672,9 +1672,10 @@ static inline int vfs_whiteout(struct mnt_idmap *idmap, ...@@ -1672,9 +1672,10 @@ static inline int vfs_whiteout(struct mnt_idmap *idmap,
WHITEOUT_DEV); WHITEOUT_DEV);
} }
struct file *vfs_tmpfile_open(struct mnt_idmap *idmap, struct file *kernel_tmpfile_open(struct mnt_idmap *idmap,
const struct path *parentpath, const struct path *parentpath,
umode_t mode, int open_flag, const struct cred *cred); umode_t mode, int open_flag,
const struct cred *cred);
int vfs_mkobj(struct dentry *, umode_t, int vfs_mkobj(struct dentry *, umode_t,
int (*f)(struct dentry *, umode_t, void *), int (*f)(struct dentry *, umode_t, void *),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment