session: delay updates to max_slots after a recall/error

because there could be lots of rpcs in flight when we get a CB_RECALL_SLOT or NFS4ERR_BADSLOT error, we're likely to get some replies with an old value for target_highest_slotid.  added a MAX_SLOTS_DELAY of 2 seconds to ignore changes to target_highest_slotid after CB_RECALL_SLOT or NFS4ERR_BADSLOT to prevent max_slots from jumping around between the old and new values

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
Casey Bodley 2012-05-15 11:20:04 -04:00 committed by Olga Kornievskaia
parent 30e8df149e
commit 22ff7afc92
2 changed files with 15 additions and 2 deletions

View file

@ -222,6 +222,7 @@ typedef struct __nfs41_slot_table {
uint32_t max_slots;
uint32_t highest_used;
uint32_t num_used;
ULONGLONG target_delay;
CRITICAL_SECTION lock;
CONDITION_VARIABLE cond;
} nfs41_slot_table;