diff options
Diffstat (limited to 'fs/nfs/internal.h')
| -rw-r--r-- | fs/nfs/internal.h | 36 | 
1 files changed, 26 insertions, 10 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index f80c47d5ff27..1f32a9fbfdaf 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -274,12 +274,6 @@ void nfs_free_request(struct nfs_page *req);  struct nfs_pgio_mirror *  nfs_pgio_current_mirror(struct nfs_pageio_descriptor *desc); -static inline bool nfs_pgio_has_mirroring(struct nfs_pageio_descriptor *desc) -{ -	WARN_ON_ONCE(desc->pg_mirror_count < 1); -	return desc->pg_mirror_count > 1; -} -  static inline bool nfs_match_open_context(const struct nfs_open_context *ctx1,  		const struct nfs_open_context *ctx2)  { @@ -417,7 +411,9 @@ extern int __init register_nfs_fs(void);  extern void __exit unregister_nfs_fs(void);  extern bool nfs_sb_active(struct super_block *sb);  extern void nfs_sb_deactive(struct super_block *sb); - +extern int nfs_client_for_each_server(struct nfs_client *clp, +				      int (*fn)(struct nfs_server *, void *), +				      void *data);  /* io.c */  extern void nfs_start_io_read(struct inode *inode);  extern void nfs_end_io_read(struct inode *inode); @@ -515,13 +511,25 @@ int nfs_filemap_write_and_wait_range(struct address_space *mapping,  		loff_t lstart, loff_t lend);  #ifdef CONFIG_NFS_V4_1 +static inline void +pnfs_bucket_clear_pnfs_ds_commit_verifiers(struct pnfs_commit_bucket *buckets, +		unsigned int nbuckets) +{ +	unsigned int i; + +	for (i = 0; i < nbuckets; i++) +		buckets[i].direct_verf.committed = NFS_INVALID_STABLE_HOW; +}  static inline  void nfs_clear_pnfs_ds_commit_verifiers(struct pnfs_ds_commit_info *cinfo)  { -	int i; +	struct pnfs_commit_array *array; -	for (i = 0; i < cinfo->nbuckets; i++) -		cinfo->buckets[i].direct_verf.committed = NFS_INVALID_STABLE_HOW; +	rcu_read_lock(); +	list_for_each_entry_rcu(array, &cinfo->commits, cinfo_list) +		pnfs_bucket_clear_pnfs_ds_commit_verifiers(array->buckets, +				array->nbuckets); +	rcu_read_unlock();  }  #else  static inline @@ -542,6 +550,14 @@ nfs_write_verifier_cmp(const struct nfs_write_verifier *v1,  	return memcmp(v1->data, v2->data, sizeof(v1->data));  } +static inline bool +nfs_write_match_verf(const struct nfs_writeverf *verf, +		struct nfs_page *req) +{ +	return verf->committed > NFS_UNSTABLE && +		!nfs_write_verifier_cmp(&req->wb_verf, &verf->verifier); +} +  /* unlink.c */  extern struct rpc_task *  nfs_async_rename(struct inode *old_dir, struct inode *new_dir,  |