Lines Matching refs:file
120 static unsigned int *memfd_file_seals_ptr(struct file *file) in memfd_file_seals_ptr() argument
122 if (shmem_file(file)) in memfd_file_seals_ptr()
123 return &SHMEM_I(file_inode(file))->seals; in memfd_file_seals_ptr()
126 if (is_file_hugepages(file)) in memfd_file_seals_ptr()
127 return &HUGETLBFS_I(file_inode(file))->seals; in memfd_file_seals_ptr()
139 static int memfd_add_seals(struct file *file, unsigned int seals) in memfd_add_seals() argument
141 struct inode *inode = file_inode(file); in memfd_add_seals()
176 if (!(file->f_mode & FMODE_WRITE)) in memfd_add_seals()
183 file_seals = memfd_file_seals_ptr(file); in memfd_add_seals()
195 error = mapping_deny_writable(file->f_mapping); in memfd_add_seals()
199 error = memfd_wait_for_pins(file->f_mapping); in memfd_add_seals()
201 mapping_allow_writable(file->f_mapping); in memfd_add_seals()
214 static int memfd_get_seals(struct file *file) in memfd_get_seals() argument
216 unsigned int *seals = memfd_file_seals_ptr(file); in memfd_get_seals()
221 long memfd_fcntl(struct file *file, unsigned int cmd, unsigned long arg) in memfd_fcntl() argument
231 error = memfd_add_seals(file, arg); in memfd_fcntl()
234 error = memfd_get_seals(file); in memfd_fcntl()
255 struct file *file; in SYSCALL_DEFINE2() local
302 file = hugetlb_file_setup(name, 0, VM_NORESERVE, &user, in SYSCALL_DEFINE2()
307 file = shmem_file_setup(name, 0, VM_NORESERVE); in SYSCALL_DEFINE2()
308 if (IS_ERR(file)) { in SYSCALL_DEFINE2()
309 error = PTR_ERR(file); in SYSCALL_DEFINE2()
312 file->f_mode |= FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE; in SYSCALL_DEFINE2()
313 file->f_flags |= O_LARGEFILE; in SYSCALL_DEFINE2()
316 file_seals = memfd_file_seals_ptr(file); in SYSCALL_DEFINE2()
320 fd_install(fd, file); in SYSCALL_DEFINE2()