callback: replay cache for back channel
nfs41_cb_session stores the last cb_compound reply (whether or not cachethis was set) to handle retry attempts, along with the cb_compound arguments for improved NFS4ERR_SEQ_FALSE_RETRY detection Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
32be705e4d
commit
cc2efe6a96
7 changed files with 265 additions and 80 deletions
|
|
@ -24,7 +24,6 @@
|
|||
#ifndef __NFS41_CALLBACK_H__
|
||||
#define __NFS41_CALLBACK_H__
|
||||
|
||||
//#include "nfs41.h"
|
||||
#include "wintirpc.h"
|
||||
#include "rpc/rpc.h"
|
||||
#include "nfs41_types.h"
|
||||
|
|
@ -230,14 +229,16 @@ struct cb_compound_args {
|
|||
};
|
||||
|
||||
union cb_op_res {
|
||||
enum_t status; /* all results start with status */
|
||||
struct cb_layoutrecall_res layoutrecall;
|
||||
struct cb_recall_slot_res recall_slot;
|
||||
struct cb_sequence_res sequence;
|
||||
struct cb_recall_res recall;
|
||||
struct cb_recall_res recall;
|
||||
};
|
||||
struct cb_resop {
|
||||
enum_t opnum;
|
||||
union cb_op_res res;
|
||||
bool_t xdr_ok;
|
||||
};
|
||||
struct cb_compound_res {
|
||||
enum_t status;
|
||||
|
|
@ -247,8 +248,13 @@ struct cb_compound_res {
|
|||
};
|
||||
|
||||
|
||||
|
||||
/* callback_xdr.c */
|
||||
bool_t proc_cb_compound_args(XDR *xdr, struct cb_compound_args *args);
|
||||
bool_t proc_cb_compound_res(XDR *xdr, struct cb_compound_res *res);
|
||||
|
||||
/* callback_server.c */
|
||||
struct __nfs41_session;
|
||||
void nfs41_callback_session_init(
|
||||
IN struct __nfs41_session *session);
|
||||
|
||||
#endif /* !__NFS41_CALLBACK_H__ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue