diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2023-05-03 16:50:18 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2025-06-17 18:04:39 -0400 |
| commit | 1812de14f04848daa354f99e9240e0f7c643718c (patch) | |
| tree | c35f3b8dd2b9ca2f181749c0f74caf5d73f04aea | |
| parent | 273a291dd7e62c42ee315777477dade0ede6636e (diff) | |
secretmem: move setting O_LARGEFILE and bumping users' count to the place where we create the file
Acked-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | mm/secretmem.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/mm/secretmem.c b/mm/secretmem.c index 589b26c2d553..ef4922baa1cd 100644 --- a/mm/secretmem.c +++ b/mm/secretmem.c @@ -208,7 +208,7 @@ static struct file *secretmem_file_create(unsigned long flags) } file = alloc_file_pseudo(inode, secretmem_mnt, "secretmem", - O_RDWR, &secretmem_fops); + O_RDWR | O_LARGEFILE, &secretmem_fops); if (IS_ERR(file)) goto err_free_inode; @@ -222,6 +222,8 @@ static struct file *secretmem_file_create(unsigned long flags) inode->i_mode |= S_IFREG; inode->i_size = 0; + atomic_inc(&secretmem_users); + return file; err_free_inode: @@ -255,9 +257,6 @@ SYSCALL_DEFINE1(memfd_secret, unsigned int, flags) goto err_put_fd; } - file->f_flags |= O_LARGEFILE; - - atomic_inc(&secretmem_users); fd_install(fd, file); return fd; |