static bool nfs41_try_wake_next_slot_table_entry(struct nfs4_slot_table *tbl) { struct nfs4_slot *slot = nfs4_alloc_slot(tbl); if (!IS_ERR(slot)) { bool ret = __nfs41_wake_and_assign_slot(tbl, slot); if (ret) return ret; nfs4_free_slot(tbl, slot); } return false; }
static void nfs4_callback_free_slot(struct nfs4_session *session, struct nfs4_slot *slot) { struct nfs4_slot_table *tbl = &session->bc_slot_table; spin_lock(&tbl->slot_tbl_lock); /* * Let the state manager know callback processing done. * A single slot, so highest used slotid is either 0 or -1 */ nfs4_free_slot(tbl, slot); spin_unlock(&tbl->slot_tbl_lock); }