Lines Matching full:file

3  *  linux/fs/nfs/file.c
13 * Expire cache on write to a file by Wai S Kok (Oct 1994).
17 * nfs regular file handling functions
59 * Open file
62 nfs_file_open(struct inode *inode, struct file *filp) in nfs_file_open()
66 dprintk("NFS: open file(%pD2)\n", filp); in nfs_file_open()
84 nfs_file_release(struct inode *inode, struct file *filp) in nfs_file_release()
96 * nfs_revalidate_file_size - Revalidate the file size
98 * @filp: pointer to struct file
100 * Revalidates the file length. This is basically a wrapper around
103 * idea of what the file length is), or O_DIRECT (in which case we
106 static int nfs_revalidate_file_size(struct inode *inode, struct file *filp) in nfs_revalidate_file_size()
119 loff_t nfs_file_llseek(struct file *filp, loff_t offset, int whence) in nfs_file_llseek()
121 dprintk("NFS: llseek file(%pD2, %lld, %d)\n", in nfs_file_llseek()
126 * the cached file length in nfs_file_llseek()
144 nfs_file_flush(struct file *file, fl_owner_t id) in nfs_file_flush() argument
146 struct inode *inode = file_inode(file); in nfs_file_flush()
149 dprintk("NFS: flush(%pD2)\n", file); in nfs_file_flush()
152 if ((file->f_mode & FMODE_WRITE) == 0) in nfs_file_flush()
156 since = filemap_sample_wb_err(file->f_mapping); in nfs_file_flush()
158 return filemap_check_wb_err(file->f_mapping, since); in nfs_file_flush()
196 nfs_file_splice_read(struct file *in, loff_t *ppos, struct pipe_inode_info *pipe, in nfs_file_splice_read()
222 struct file *file = desc->file; in nfs_file_mmap_prepare() local
223 struct inode *inode = file_inode(file); in nfs_file_mmap_prepare()
226 dprintk("NFS: mmap(%pD2)\n", file); in nfs_file_mmap_prepare()
234 status = nfs_revalidate_mapping(inode, file->f_mapping); in nfs_file_mmap_prepare()
246 nfs_file_fsync_commit(struct file *file, int datasync) in nfs_file_fsync_commit() argument
248 struct inode *inode = file_inode(file); in nfs_file_fsync_commit()
251 dprintk("NFS: fsync file(%pD2) datasync %d\n", file, datasync); in nfs_file_fsync_commit()
255 ret2 = file_check_and_advance_wb_err(file); in nfs_file_fsync_commit()
262 nfs_file_fsync(struct file *file, loff_t start, loff_t end, int datasync) in nfs_file_fsync() argument
264 struct inode *inode = file_inode(file); in nfs_file_fsync()
273 ret = file_write_and_wait_range(file, start, end); in nfs_file_fsync()
276 ret = nfs_file_fsync_commit(file, datasync); in nfs_file_fsync()
342 * It may be more efficient to read the page first if the file is
346 * that there were valid bytes of data in that range of the file,
348 * that range of the file.
360 static bool nfs_want_read_modify_write(struct file *file, struct folio *folio, in nfs_want_read_modify_write() argument
371 if (pnfs_ld_read_whole_page(file_inode(file))) in nfs_want_read_modify_write()
376 if (file->f_mode & FMODE_READ) in nfs_want_read_modify_write()
395 struct file *file = iocb->ki_filp; in nfs_write_begin() local
399 trace_nfs_write_begin(file_inode(file), pos, len); in nfs_write_begin()
402 file, mapping->host->i_ino, len, (long long) pos); in nfs_write_begin()
413 ret = nfs_flush_incompatible(file, folio); in nfs_write_begin()
418 nfs_want_read_modify_write(file, folio, pos, len)) { in nfs_write_begin()
421 ret = nfs_read_folio(file, folio); in nfs_write_begin()
427 trace_nfs_write_begin_done(file_inode(file), pos, len, ret); in nfs_write_begin()
436 struct file *file = iocb->ki_filp; in nfs_write_end() local
437 struct nfs_open_context *ctx = nfs_file_open_context(file); in nfs_write_end()
441 trace_nfs_write_end(file_inode(file), pos, len); in nfs_write_end()
443 file, mapping->host->i_ino, len, (long long) pos); in nfs_write_end()
447 * as up to date if it turns out that we're extending the file. in nfs_write_end()
465 status = nfs_update_folio(file, folio, offset, copied); in nfs_write_end()
471 trace_nfs_write_end_done(file_inode(file), pos, len, status); in nfs_write_end()
479 trace_nfs_write_end_done(file_inode(file), pos, len, copied); in nfs_write_end()
609 static int nfs_swap_activate(struct swap_info_struct *sis, struct file *file, in nfs_swap_activate() argument
615 struct inode *inode = file_inode(file); in nfs_swap_activate()
644 static void nfs_swap_deactivate(struct file *file) in nfs_swap_deactivate() argument
646 struct inode *inode = file_inode(file); in nfs_swap_deactivate()
652 cl->rpc_ops->disable_swap(file_inode(file)); in nfs_swap_deactivate()
683 struct file *filp = vmf->vma->vm_file; in nfs_vm_page_mkwrite()
739 struct file *file = iocb->ki_filp; in nfs_file_write() local
740 struct inode *inode = file_inode(file); in nfs_file_write()
754 result = nfs_key_timeout_notify(file, inode); in nfs_file_write()
762 file, iov_iter_count(from), (long long) iocb->ki_pos); in nfs_file_write()
767 * O_APPEND implies that we must revalidate the file length. in nfs_file_write()
770 result = nfs_revalidate_file_size(inode, file); in nfs_file_write()
775 nfs_clear_invalid_mapping(file->f_mapping); in nfs_file_write()
777 since = filemap_sample_wb_err(file->f_mapping); in nfs_file_write()
792 result = filemap_fdatawrite_range(file->f_mapping, in nfs_file_write()
799 filemap_fdatawait_range(file->f_mapping, in nfs_file_write()
809 error = filemap_check_wb_err(file->f_mapping, since); in nfs_file_write()
817 error = file_check_and_advance_wb_err(file); in nfs_file_write()
824 printk(KERN_INFO "NFS: attempt to write to active swap file!\n"); in nfs_file_write()
830 do_getlk(struct file *filp, int cmd, struct file_lock *fl, int is_local) in do_getlk()
859 do_unlk(struct file *filp, int cmd, struct file_lock *fl, int is_local) in do_unlk()
895 do_setlk(struct file *filp, int cmd, struct file_lock *fl, int is_local) in do_setlk()
921 * the file is mapped, clear the page cache as well so in do_setlk()
937 * Lock a (portion of) a file
939 int nfs_lock(struct file *filp, int cmd, struct file_lock *fl) in nfs_lock()
975 * Lock a (portion of) a file
977 int nfs_flock(struct file *filp, int cmd, struct file_lock *fl) in nfs_flock()