• Home
  • Raw
  • Download

Lines Matching refs:file

46 	struct file *f = container_of(head, struct file, f_u.fu_rcuhead);  in file_free_rcu()
52 static inline void file_free(struct file *f) in file_free()
103 struct file *get_empty_filp(void) in get_empty_filp()
107 struct file *f; in get_empty_filp()
158 struct file *alloc_file(struct path *path, fmode_t mode, in alloc_file()
161 struct file *file; in alloc_file() local
163 file = get_empty_filp(); in alloc_file()
164 if (IS_ERR(file)) in alloc_file()
165 return file; in alloc_file()
167 file->f_path = *path; in alloc_file()
168 file->f_inode = path->dentry->d_inode; in alloc_file()
169 file->f_mapping = path->dentry->d_inode->i_mapping; in alloc_file()
176 file->f_mode = mode; in alloc_file()
177 file->f_op = fop; in alloc_file()
180 return file; in alloc_file()
186 static void __fput(struct file *file) in __fput() argument
188 struct dentry *dentry = file->f_path.dentry; in __fput()
189 struct vfsmount *mnt = file->f_path.mnt; in __fput()
190 struct inode *inode = file->f_inode; in __fput()
194 fsnotify_close(file); in __fput()
199 eventpoll_release(file); in __fput()
200 locks_remove_file(file); in __fput()
202 if (unlikely(file->f_flags & FASYNC)) { in __fput()
203 if (file->f_op->fasync) in __fput()
204 file->f_op->fasync(-1, file, 0); in __fput()
206 ima_file_free(file); in __fput()
207 if (file->f_op->release) in __fput()
208 file->f_op->release(inode, file); in __fput()
209 security_file_free(file); in __fput()
211 !(file->f_mode & FMODE_PATH))) { in __fput()
214 fops_put(file->f_op); in __fput()
215 put_pid(file->f_owner.pid); in __fput()
216 if ((file->f_mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) in __fput()
218 if (file->f_mode & FMODE_WRITER) { in __fput()
222 file->f_path.dentry = NULL; in __fput()
223 file->f_path.mnt = NULL; in __fput()
224 file->f_inode = NULL; in __fput()
225 file_free(file); in __fput()
238 __fput(llist_entry(node, struct file, f_u.fu_llist)); in delayed_fput()
244 __fput(container_of(work, struct file, f_u.fu_rcuhead)); in ____fput()
264 void fput(struct file *file) in fput() argument
266 if (atomic_long_dec_and_test(&file->f_count)) { in fput()
270 init_task_work(&file->f_u.fu_rcuhead, ____fput); in fput()
271 if (!task_work_add(task, &file->f_u.fu_rcuhead, true)) in fput()
280 if (llist_add(&file->f_u.fu_llist, &delayed_fput_list)) in fput()
293 void __fput_sync(struct file *file) in __fput_sync() argument
295 if (atomic_long_dec_and_test(&file->f_count)) { in __fput_sync()
298 __fput(file); in __fput_sync()
304 void put_filp(struct file *file) in put_filp() argument
306 if (atomic_long_dec_and_test(&file->f_count)) { in put_filp()
307 security_file_free(file); in put_filp()
308 file_free(file); in put_filp()
314 filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0, in files_init()