mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-24 07:31:41 +00:00
NFS add session back channel draining
Currently session draining only drains the fore channel. The back channel processing must also be drained. Use the back channel highest_slot_used to indicate that a callback is being processed by the callback thread. Move the session complete to be per channel. When the session is draininig, wait for any current back channel processing to complete and stop all new back channel processing by returning NFS4ERR_DELAY to the back channel client. Drain the back channel, then the fore channel. Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
ece0de633c
commit
42acd02182
6 changed files with 86 additions and 16 deletions
|
@ -197,6 +197,7 @@ struct nfs4_slot_table {
|
|||
* op for dynamic resizing */
|
||||
int target_max_slots; /* Set by CB_RECALL_SLOT as
|
||||
* the new max_slots */
|
||||
struct completion complete;
|
||||
};
|
||||
|
||||
static inline int slot_idx(struct nfs4_slot_table *tbl, struct nfs4_slot *sp)
|
||||
|
@ -213,7 +214,6 @@ struct nfs4_session {
|
|||
unsigned long session_state;
|
||||
u32 hash_alg;
|
||||
u32 ssv_len;
|
||||
struct completion complete;
|
||||
|
||||
/* The fore and back channel */
|
||||
struct nfs4_channel_attrs fc_attrs;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue