Lines Matching refs:file
35 static int fuse_send_open(struct fuse_mount *fm, u64 nodeid, struct file *file, in fuse_send_open() argument
42 inarg.flags = file->f_flags & ~(O_CREAT | O_EXCL | O_NOCTTY); in fuse_send_open()
133 int fuse_do_open(struct fuse_mount *fm, u64 nodeid, struct file *file, in fuse_do_open() argument
151 err = fuse_send_open(fm, nodeid, file, opcode, &outarg); in fuse_do_open()
171 file->private_data = ff; in fuse_do_open()
177 static void fuse_link_write_file(struct file *file) in fuse_link_write_file() argument
179 struct inode *inode = file_inode(file); in fuse_link_write_file()
181 struct fuse_file *ff = file->private_data; in fuse_link_write_file()
192 void fuse_finish_open(struct inode *inode, struct file *file) in fuse_finish_open() argument
194 struct fuse_file *ff = file->private_data; in fuse_finish_open()
198 stream_open(inode, file); in fuse_finish_open()
200 nonseekable_open(inode, file); in fuse_finish_open()
202 if (fc->atomic_o_trunc && (file->f_flags & O_TRUNC)) { in fuse_finish_open()
212 file_update_time(file); in fuse_finish_open()
217 if ((file->f_mode & FMODE_WRITE) && fc->writeback_cache) in fuse_finish_open()
218 fuse_link_write_file(file); in fuse_finish_open()
221 int fuse_open_common(struct inode *inode, struct file *file, bool isdir) in fuse_open_common() argument
226 bool is_wb_truncate = (file->f_flags & O_TRUNC) && in fuse_open_common()
229 bool dax_truncate = (file->f_flags & O_TRUNC) && in fuse_open_common()
235 err = generic_file_open(inode, file); in fuse_open_common()
251 err = fuse_do_open(fm, get_node_id(inode), file, isdir); in fuse_open_common()
253 fuse_finish_open(inode, file); in fuse_open_common()
297 void fuse_release_common(struct file *file, bool isdir) in fuse_release_common() argument
299 struct fuse_inode *fi = get_fuse_inode(file_inode(file)); in fuse_release_common()
300 struct fuse_file *ff = file->private_data; in fuse_release_common()
306 fuse_prepare_release(fi, ff, file->f_flags, opcode); in fuse_release_common()
311 (fl_owner_t) file); in fuse_release_common()
314 ra->inode = igrab(file_inode(file)); in fuse_release_common()
328 static int fuse_open(struct inode *inode, struct file *file) in fuse_open() argument
330 return fuse_open_common(inode, file, false); in fuse_open()
333 static int fuse_release(struct inode *inode, struct file *file) in fuse_release() argument
341 fuse_release_common(file, false); in fuse_release()
465 static int fuse_flush(struct file *file, fl_owner_t id) in fuse_flush() argument
467 struct inode *inode = file_inode(file); in fuse_flush()
469 struct fuse_file *ff = file->private_data; in fuse_flush()
485 err = filemap_check_errors(file->f_mapping); in fuse_flush()
519 int fuse_fsync_common(struct file *file, loff_t start, loff_t end, in fuse_fsync_common() argument
522 struct inode *inode = file->f_mapping->host; in fuse_fsync_common()
524 struct fuse_file *ff = file->private_data; in fuse_fsync_common()
539 static int fuse_fsync(struct file *file, loff_t start, loff_t end, in fuse_fsync() argument
542 struct inode *inode = file->f_mapping->host; in fuse_fsync()
556 err = file_write_and_wait_range(file, start, end); in fuse_fsync()
567 err = file_check_and_advance_wb_err(file); in fuse_fsync()
578 err = fuse_fsync_common(file, start, end, datasync, FUSE_FSYNC); in fuse_fsync()
589 void fuse_read_args_fill(struct fuse_io_args *ia, struct file *file, loff_t pos, in fuse_read_args_fill() argument
592 struct fuse_file *ff = file->private_data; in fuse_read_args_fill()
598 ia->read.in.flags = file->f_flags; in fuse_read_args_fill()
764 struct file *file = ia->io->iocb->ki_filp; in fuse_send_read() local
765 struct fuse_file *ff = file->private_data; in fuse_send_read()
768 fuse_read_args_fill(ia, file, pos, count, FUSE_READ); in fuse_send_read()
820 static int fuse_do_readpage(struct file *file, struct page *page) in fuse_do_readpage() argument
849 fuse_read_args_fill(&ia, file, pos, desc.length, FUSE_READ); in fuse_do_readpage()
864 static int fuse_readpage(struct file *file, struct page *page) in fuse_readpage() argument
873 err = fuse_do_readpage(file, page); in fuse_readpage()
921 static void fuse_send_readpages(struct fuse_io_args *ia, struct file *file) in fuse_send_readpages() argument
923 struct fuse_file *ff = file->private_data; in fuse_send_readpages()
942 fuse_read_args_fill(ia, file, pos, count, FUSE_READ); in fuse_send_readpages()
989 fuse_send_readpages(ia, rac->file); in fuse_readahead()
1052 struct file *file = iocb->ki_filp; in fuse_send_write() local
1053 struct fuse_file *ff = file->private_data; in fuse_send_write()
1097 struct file *file = iocb->ki_filp; in fuse_send_write_pages() local
1098 struct fuse_file *ff = file->private_data; in fuse_send_write_pages()
1282 struct file *file = iocb->ki_filp; in fuse_cache_write_iter() local
1283 struct address_space *mapping = file->f_mapping; in fuse_cache_write_iter()
1292 err = fuse_update_attributes(mapping->host, file); in fuse_cache_write_iter()
1308 err = file_remove_privs(file); in fuse_cache_write_iter()
1312 err = file_update_time(file); in fuse_cache_write_iter()
1331 err = filemap_write_and_wait_range(file->f_mapping, pos, in fuse_cache_write_iter()
1336 invalidate_mapping_pages(file->f_mapping, in fuse_cache_write_iter()
1439 struct file *file = io->iocb->ki_filp; in fuse_direct_io() local
1440 struct inode *inode = file->f_mapping->host; in fuse_direct_io()
1441 struct fuse_file *ff = file->private_data; in fuse_direct_io()
1580 struct file *file = iocb->ki_filp; in fuse_file_read_iter() local
1581 struct fuse_file *ff = file->private_data; in fuse_file_read_iter()
1582 struct inode *inode = file_inode(file); in fuse_file_read_iter()
1600 struct file *file = iocb->ki_filp; in fuse_file_write_iter() local
1601 struct fuse_file *ff = file->private_data; in fuse_file_write_iter()
1602 struct inode *inode = file_inode(file); in fuse_file_write_iter()
2256 static int fuse_write_begin(struct file *file, struct address_space *mapping, in fuse_write_begin() argument
2261 struct fuse_conn *fc = get_fuse_conn(file_inode(file)); in fuse_write_begin()
2287 err = fuse_do_readpage(file, page); in fuse_write_begin()
2301 static int fuse_write_end(struct file *file, struct address_space *mapping, in fuse_write_end() argument
2388 static int fuse_file_mmap(struct file *file, struct vm_area_struct *vma) in fuse_file_mmap() argument
2390 struct fuse_file *ff = file->private_data; in fuse_file_mmap()
2393 if (FUSE_IS_DAX(file_inode(file))) in fuse_file_mmap()
2394 return fuse_dax_mmap(file, vma); in fuse_file_mmap()
2397 return fuse_passthrough_mmap(file, vma); in fuse_file_mmap()
2404 invalidate_inode_pages2(file->f_mapping); in fuse_file_mmap()
2406 return generic_file_mmap(file, vma); in fuse_file_mmap()
2410 fuse_link_write_file(file); in fuse_file_mmap()
2412 file_accessed(file); in fuse_file_mmap()
2450 static void fuse_lk_fill(struct fuse_args *args, struct file *file, in fuse_lk_fill() argument
2454 struct inode *inode = file_inode(file); in fuse_lk_fill()
2456 struct fuse_file *ff = file->private_data; in fuse_lk_fill()
2474 static int fuse_getlk(struct file *file, struct file_lock *fl) in fuse_getlk() argument
2476 struct inode *inode = file_inode(file); in fuse_getlk()
2483 fuse_lk_fill(&args, file, fl, FUSE_GETLK, 0, 0, &inarg); in fuse_getlk()
2494 static int fuse_setlk(struct file *file, struct file_lock *fl, int flock) in fuse_setlk() argument
2496 struct inode *inode = file_inode(file); in fuse_setlk()
2514 fuse_lk_fill(&args, file, fl, opcode, pid_nr, flock, &inarg); in fuse_setlk()
2524 static int fuse_file_lock(struct file *file, int cmd, struct file_lock *fl) in fuse_file_lock() argument
2526 struct inode *inode = file_inode(file); in fuse_file_lock()
2534 posix_test_lock(file, fl); in fuse_file_lock()
2537 err = fuse_getlk(file, fl); in fuse_file_lock()
2540 err = posix_lock_file(file, fl, NULL); in fuse_file_lock()
2542 err = fuse_setlk(file, fl, 0); in fuse_file_lock()
2547 static int fuse_file_flock(struct file *file, int cmd, struct file_lock *fl) in fuse_file_flock() argument
2549 struct inode *inode = file_inode(file); in fuse_file_flock()
2554 err = locks_lock_file_wait(file, fl); in fuse_file_flock()
2556 struct fuse_file *ff = file->private_data; in fuse_file_flock()
2560 err = fuse_setlk(file, fl, 1); in fuse_file_flock()
2596 static loff_t fuse_lseek(struct file *file, loff_t offset, int whence) in fuse_lseek() argument
2598 struct inode *inode = file->f_mapping->host; in fuse_lseek()
2600 struct fuse_file *ff = file->private_data; in fuse_lseek()
2630 return vfs_setpos(file, outarg.offset, inode->i_sb->s_maxbytes); in fuse_lseek()
2633 err = fuse_update_attributes(inode, file); in fuse_lseek()
2635 return generic_file_llseek(file, offset, whence); in fuse_lseek()
2640 static loff_t fuse_file_llseek(struct file *file, loff_t offset, int whence) in fuse_file_llseek() argument
2643 struct inode *inode = file_inode(file); in fuse_file_llseek()
2649 retval = generic_file_llseek(file, offset, whence); in fuse_file_llseek()
2653 retval = fuse_update_attributes(inode, file); in fuse_file_llseek()
2655 retval = generic_file_llseek(file, offset, whence); in fuse_file_llseek()
2661 retval = fuse_lseek(file, offset, whence); in fuse_file_llseek()
2806 long fuse_do_ioctl(struct file *file, unsigned int cmd, unsigned long arg, in fuse_do_ioctl() argument
2809 struct fuse_file *ff = file->private_data; in fuse_do_ioctl()
3001 long fuse_ioctl_common(struct file *file, unsigned int cmd, in fuse_ioctl_common() argument
3004 struct inode *inode = file_inode(file); in fuse_ioctl_common()
3013 return fuse_do_ioctl(file, cmd, arg, flags); in fuse_ioctl_common()
3016 static long fuse_file_ioctl(struct file *file, unsigned int cmd, in fuse_file_ioctl() argument
3019 return fuse_ioctl_common(file, cmd, arg, 0); in fuse_file_ioctl()
3022 static long fuse_file_compat_ioctl(struct file *file, unsigned int cmd, in fuse_file_compat_ioctl() argument
3025 return fuse_ioctl_common(file, cmd, arg, FUSE_IOCTL_COMPAT); in fuse_file_compat_ioctl()
3079 __poll_t fuse_file_poll(struct file *file, poll_table *wait) in fuse_file_poll() argument
3081 struct fuse_file *ff = file->private_data; in fuse_file_poll()
3091 poll_wait(file, &ff->poll_wait, wait); in fuse_file_poll()
3147 static void fuse_do_truncate(struct file *file) in fuse_do_truncate() argument
3149 struct inode *inode = file->f_mapping->host; in fuse_do_truncate()
3155 attr.ia_file = file; in fuse_do_truncate()
3158 fuse_do_setattr(file_dentry(file), &attr, file); in fuse_do_truncate()
3171 struct file *file = iocb->ki_filp; in fuse_direct_IO() local
3172 struct fuse_file *ff = file->private_data; in fuse_direct_IO()
3181 inode = file->f_mapping->host; in fuse_direct_IO()
3256 fuse_do_truncate(file); in fuse_direct_IO()
3272 static long fuse_file_fallocate(struct file *file, int mode, loff_t offset, in fuse_file_fallocate() argument
3275 struct fuse_file *ff = file->private_data; in fuse_file_fallocate()
3276 struct inode *inode = file_inode(file); in fuse_file_fallocate()
3320 err = file_modified(file); in fuse_file_fallocate()
3345 file_update_time(file); in fuse_file_fallocate()
3367 static ssize_t __fuse_copy_file_range(struct file *file_in, loff_t pos_in, in __fuse_copy_file_range()
3368 struct file *file_out, loff_t pos_out, in __fuse_copy_file_range()
3478 static ssize_t fuse_copy_file_range(struct file *src_file, loff_t src_off, in fuse_copy_file_range()
3479 struct file *dst_file, loff_t dst_off, in fuse_copy_file_range()