diff options
author | Andy Adamson <andros@netapp.com> | 2011-02-28 20:34:20 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2011-03-11 15:38:43 -0500 |
commit | cbdabc7f8bf14ca1d40ab1cb86f64b3bc09716e8 (patch) | |
tree | 16939b96996e8380d91d7e2743e811cf5c49f629 /net | |
parent | dc70d7b3189597f313df7bd2da849cfc39063b15 (diff) |
NFSv4.1: filelayout async error handler
Use our own async error handler.
Mark the layout as failed and retry i/o through the MDS on specified errors.
Update the mds_offset in nfs_readpage_retry so that a failed short-read retry
to a DS gets correctly resent through the MDS.
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/clnt.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 8b5a6b40d37c..edaf56e2ed29 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
@@ -597,6 +597,14 @@ void rpc_task_set_client(struct rpc_task *task, struct rpc_clnt *clnt) | |||
597 | } | 597 | } |
598 | } | 598 | } |
599 | 599 | ||
600 | void rpc_task_reset_client(struct rpc_task *task, struct rpc_clnt *clnt) | ||
601 | { | ||
602 | rpc_task_release_client(task); | ||
603 | rpc_task_set_client(task, clnt); | ||
604 | } | ||
605 | EXPORT_SYMBOL_GPL(rpc_task_reset_client); | ||
606 | |||
607 | |||
600 | static void | 608 | static void |
601 | rpc_task_set_rpc_message(struct rpc_task *task, const struct rpc_message *msg) | 609 | rpc_task_set_rpc_message(struct rpc_task *task, const struct rpc_message *msg) |
602 | { | 610 | { |