static void nfs41_set_server_slotid_locked(struct nfs4_slot_table *tbl, u32 highest_slotid) { if (tbl->server_highest_slotid == highest_slotid) return; if (tbl->highest_used_slotid > highest_slotid) return; /* Deallocate slots */ nfs4_shrink_slot_table(tbl, highest_slotid + 1); tbl->server_highest_slotid = highest_slotid; }
static void nfs4_reset_slot_table(struct nfs4_slot_table *tbl, u32 server_highest_slotid, u32 ivalue) { struct nfs4_slot **p; nfs4_shrink_slot_table(tbl, server_highest_slotid + 1); p = &tbl->slots; while (*p) { (*p)->seq_nr = ivalue; (*p)->interrupted = 0; p = &(*p)->next; } tbl->highest_used_slotid = NFS4_NO_SLOT; tbl->target_highest_slotid = server_highest_slotid; tbl->server_highest_slotid = server_highest_slotid; tbl->d_target_highest_slotid = 0; tbl->d2_target_highest_slotid = 0; tbl->max_slotid = server_highest_slotid; }
/* Destroy the slot table */ static void nfs4_destroy_slot_tables(struct nfs4_session *session) { nfs4_shrink_slot_table(&session->fc_slot_table, 0); nfs4_shrink_slot_table(&session->bc_slot_table, 0); }
/* * nfs4_release_slot_table - release all slot table entries */ static void nfs4_release_slot_table(struct nfs4_slot_table *tbl) { nfs4_shrink_slot_table(tbl, 0); }