|
int | nfs_sync_mapping (struct address_space *mapping) |
|
void | nfs_zap_mapping (struct inode *inode, struct address_space *mapping) |
|
void | nfs_zap_caches (struct inode *) |
|
void | nfs_invalidate_atime (struct inode *) |
|
struct inode * | nfs_fhget (struct super_block *, struct nfs_fh *, struct nfs_fattr *) |
|
int | nfs_refresh_inode (struct inode *, struct nfs_fattr *) |
|
int | nfs_post_op_update_inode (struct inode *inode, struct nfs_fattr *fattr) |
|
int | nfs_post_op_update_inode_force_wcc (struct inode *inode, struct nfs_fattr *fattr) |
|
int | nfs_getattr (struct vfsmount *, struct dentry *, struct kstat *) |
|
void | nfs_access_add_cache (struct inode *, struct nfs_access_entry *) |
|
void | nfs_access_set_mask (struct nfs_access_entry *, u32) |
|
int | nfs_permission (struct inode *, int) |
|
int | nfs_open (struct inode *, struct file *) |
|
int | nfs_release (struct inode *, struct file *) |
|
int | nfs_attribute_timeout (struct inode *inode) |
|
int | nfs_revalidate_inode (struct nfs_server *server, struct inode *inode) |
|
int | __nfs_revalidate_inode (struct nfs_server *, struct inode *) |
|
int | nfs_revalidate_mapping (struct inode *inode, struct address_space *mapping) |
|
int | nfs_setattr (struct dentry *, struct iattr *) |
|
void | nfs_setattr_update_inode (struct inode *inode, struct iattr *attr) |
|
struct nfs_open_context * | get_nfs_open_context (struct nfs_open_context *ctx) |
|
void | put_nfs_open_context (struct nfs_open_context *ctx) |
|
struct nfs_open_context * | nfs_find_open_context (struct inode *inode, struct rpc_cred *cred, fmode_t mode) |
|
struct nfs_open_context * | alloc_nfs_open_context (struct dentry *dentry, fmode_t f_mode) |
|
void | nfs_file_set_open_context (struct file *filp, struct nfs_open_context *ctx) |
|
struct nfs_lock_context * | nfs_get_lock_context (struct nfs_open_context *ctx) |
|
void | nfs_put_lock_context (struct nfs_lock_context *l_ctx) |
|
u64 | nfs_compat_user_ino64 (u64 fileid) |
|
void | nfs_fattr_init (struct nfs_fattr *fattr) |
|
unsigned long | nfs_inc_attr_generation_counter (void) |
|
struct nfs_fattr * | nfs_alloc_fattr (void) |
|
struct nfs_fh * | nfs_alloc_fhandle (void) |
|
int | nfs_root_data (char **root_device, char **root_data) |
|
__be32 | root_nfs_parse_addr (char *name) |
|
ssize_t | nfs_direct_IO (int, struct kiocb *, const struct iovec *, loff_t, unsigned long) |
|
ssize_t | nfs_file_direct_read (struct kiocb *iocb, const struct iovec *iov, unsigned long nr_segs, loff_t pos, bool uio) |
|
ssize_t | nfs_file_direct_write (struct kiocb *iocb, const struct iovec *iov, unsigned long nr_segs, loff_t pos, bool uio) |
|
void | nfs_force_lookup_revalidate (struct inode *dir) |
|
int | nfs_instantiate (struct dentry *dentry, struct nfs_fh *fh, struct nfs_fattr *fattr) |
|
int | nfs_may_open (struct inode *inode, struct rpc_cred *cred, int openflags) |
|
void | nfs_access_zap_cache (struct inode *inode) |
|
void | nfs_release_automount_timer (void) |
|
void | nfs_complete_unlink (struct dentry *dentry, struct inode *) |
|
void | nfs_block_sillyrename (struct dentry *dentry) |
|
void | nfs_unblock_sillyrename (struct dentry *dentry) |
|
int | nfs_sillyrename (struct inode *dir, struct dentry *dentry) |
|
int | nfs_writepage (struct page *page, struct writeback_control *wbc) |
|
int | nfs_writepages (struct address_space *, struct writeback_control *) |
|
int | nfs_flush_incompatible (struct file *file, struct page *page) |
|
int | nfs_updatepage (struct file *, struct page *, unsigned int, unsigned int) |
|
void | nfs_writeback_done (struct rpc_task *, struct nfs_write_data *) |
|
int | nfs_wb_all (struct inode *inode) |
|
int | nfs_wb_page (struct inode *inode, struct page *page) |
|
int | nfs_wb_page_cancel (struct inode *inode, struct page *page) |
|
int | nfs_readpage (struct file *, struct page *) |
|
int | nfs_readpages (struct file *, struct address_space *, struct list_head *, unsigned) |
|
int | nfs_readpage_result (struct rpc_task *, struct nfs_read_data *) |
|
int | nfs_readpage_async (struct nfs_open_context *, struct inode *, struct page *) |
|
nfs_direct_IO - NFS address space operation for direct I/O : direction (read or write) : target I/O control block : array of vectors that define I/O buffer : offset in file to begin the operation : size of iovec array
The presence of this routine in the address space ops vector means the NFS client supports direct I/O. However, for most direct IO, we shunt off direct read and write requests before the VFS gets them, so this method is only ever called for swap.
Definition at line 124 of file direct.c.
nfs_file_direct_read - file direct read operation for NFS files : target I/O control block : vector of user buffers into which to read data : size of iov vector : byte offset in file where reading starts
We use this function for direct reads instead of calling generic_file_aio_read() in order to avoid gfar's check to see if the request starts before the end of the file. For that check to work, we must generate a GETATTR before each direct read, and even then there is a window between the GETATTR and the subsequent READ where the file size could change. Our preference is simply to do all reads the application wants, and the server will take care of managing the end of file boundary.
This function also eliminates unnecessarily updating the file's atime locally, as the NFS server sets the file's atime, and this client must read the updated atime from the server back into its cache.
Definition at line 915 of file direct.c.
nfs_file_direct_write - file direct write operation for NFS files : target I/O control block : vector of user buffers from which to write data : size of iov vector : byte offset in file where writing starts
We use this function for direct writes instead of calling generic_file_aio_write() in order to avoid taking the inode semaphore and updating the i_size. The NFS server will set the new i_size and this client must read the updated size back into its cache. We let the server do generic write parameter checking and report problems.
We eliminate local atime updates, see direct read above.
We avoid unnecessary page cache invalidations for normal cached readers of this file.
Note that O_APPEND is not supported for NFS direct writes, as there is no atomic O_APPEND write facility in the NFS protocol.
Definition at line 971 of file direct.c.
nfs_post_op_update_inode - try to update the inode attribute cache - pointer to inode - updated attributes
After an operation that has changed the inode metadata, mark the attribute cache as being invalid, then try to update it.
NB: if the server didn't return any post op attributes, this function will force the retrieval of attributes before the next NFS request. Thus it should be used only for operations that are expected to change one or more attributes, to avoid unnecessary NFS requests and trips through nfs_update_inode().
Definition at line 1223 of file inode.c.
nfs_post_op_update_inode_force_wcc - try to update the inode attribute cache - pointer to inode - updated attributes
After an operation that has changed the inode metadata, mark the attribute cache as being invalid, then try to update it. Fake up weak cache consistency data, if none exist.
This function is mainly designed to be used by the ->write_done() functions.
Definition at line 1245 of file inode.c.