[pnfs] [PATCH 05/29] pnfs: nfs41_validate_seq_args change

Benny Halevy bhalevy at panasas.com
Fri Dec 28 03:44:25 EST 2007


From: Andy Adamson <andros at umich.edu>

It does not make sense for the pNFS filelayout data servers which are not
mounted, and use the MDS struct nfs_server for all bookkeeping.

The filelayout data servers use struct nfs_client to reference the
struct nfs4_session.

The 2.6.18.3 sessions code placed two new calls in each rpc for NFSv4.1
rpc_ops->setup_sequence and rpc_ops->sequence_done.
The 2.6.24 sessions code does this in much cleaner way: using the rpc layer
rpc_call_ops rpc_call_prepare, and rpc_call_done.

Signed-off-by: Andy Adamson<andros at umich.edu>
Signed-off-by: Benny Halevy <bhalevy at panasas.com>
---
 fs/nfs/nfs4filelayout.c |    2 ++
 fs/nfs/read.c           |    7 ++++++-
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c
index f422d9c..b07ff41 100644
--- a/fs/nfs/nfs4filelayout.c
+++ b/fs/nfs/nfs4filelayout.c
@@ -72,6 +72,8 @@ extern struct nfs_write_data *nfs_commit_alloc(void);
 extern void nfs_commit_free(struct nfs_write_data *p);
 extern void nfs_initiate_write(struct nfs_write_data *, struct rpc_clnt *, const struct rpc_call_ops *, int);
 extern void nfs_initiate_read(struct nfs_read_data *data, struct rpc_clnt *clnt, const struct rpc_call_ops *call_ops);
+extern void nfs_read_validate(struct rpc_task *task, void *calldata);
+extern void nfs_readdata_release(void *data);
 
 /* Callback operations to the pNFS client */
 struct pnfs_client_operations *pnfs_callback_ops;
diff --git a/fs/nfs/read.c b/fs/nfs/read.c
index 3034651..46b350d 100644
--- a/fs/nfs/read.c
+++ b/fs/nfs/read.c
@@ -248,7 +248,6 @@ void nfs_initiate_read(struct nfs_read_data *data, struct rpc_clnt *clnt,
 
 	nfs_execute_read(data);
 }
-EXPORT_SYMBOL(nfs_initiate_read);
 
 /*
  * Generate multiple requests to fill a single page.
@@ -674,3 +673,9 @@ void nfs_destroy_readpagecache(void)
 	mempool_destroy(nfs_rdata_mempool);
 	kmem_cache_destroy(nfs_rdata_cachep);
 }
+
+#ifdef CONFIG_PNFS
+EXPORT_SYMBOL(nfs_initiate_read);
+EXPORT_SYMBOL(nfs_readdata_release);
+EXPORT_SYMBOL(nfs_read_validate);
+#endif /* CONFIG_PNFS */
-- 
1.5.3.3



More information about the pNFS mailing list