int nfs4_op_reclaim_complete(struct nfs_argop4 *op, compound_data_t *data, struct nfs_resop4 *resp) { RECLAIM_COMPLETE4args * const arg_RECLAIM_COMPLETE4 __attribute__ ((unused)) = &op->nfs_argop4_u.opreclaim_complete; RECLAIM_COMPLETE4res * const res_RECLAIM_COMPLETE4 = &resp->nfs_resop4_u.opreclaim_complete; nfs_client_id_t *clientid = data->session->clientid_record; resp->resop = NFS4_OP_RECLAIM_COMPLETE; res_RECLAIM_COMPLETE4->rcr_status = NFS4_OK; if (data->minorversion == 0) { res_RECLAIM_COMPLETE4->rcr_status = NFS4ERR_INVAL; return res_RECLAIM_COMPLETE4->rcr_status; } if (data->session == NULL) { res_RECLAIM_COMPLETE4->rcr_status = NFS4ERR_OP_NOT_IN_SESSION; return res_RECLAIM_COMPLETE4->rcr_status; } /* For now, we don't handle rca_one_fs, so we won't complain about * complete already for it. */ if (clientid->cid_cb.v41.cid_reclaim_complete && !arg_RECLAIM_COMPLETE4->rca_one_fs) { res_RECLAIM_COMPLETE4->rcr_status = NFS4ERR_COMPLETE_ALREADY; return res_RECLAIM_COMPLETE4->rcr_status; } if (!arg_RECLAIM_COMPLETE4->rca_one_fs) { clientid->cid_cb.v41.cid_reclaim_complete = true; if (clientid->cid_allow_reclaim) atomic_inc_int32_t(&reclaim_completes); } return res_RECLAIM_COMPLETE4->rcr_status; } /* nfs41_op_reclaim_complete */
int32_t inc_session_ref(nfs41_session_t *session) { int32_t refcnt = atomic_inc_int32_t(&session->refcount); return refcnt; }
void inc_nlm_client_ref(state_nlm_client_t *pclient) { atomic_inc_int32_t(&pclient->slc_refcount); }
/** * @brief Take a reference on NSM client * * @param[in] client The client to ref */ void inc_nsm_client_ref(state_nsm_client_t *client) { atomic_inc_int32_t(&client->ssc_refcount); }
/** * @brief Take a reference on an NLM client * * @param[in] client Client to reference */ void inc_nlm_client_ref(state_nlm_client_t *client) { (void) atomic_inc_int32_t(&client->slc_refcount); }