X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lnet%2Fselftest%2Fconrpc.c;h=e376ce3c5d99192aba372f64022ce313a1369f7d;hb=80da07e3994946f85cc14f32888ed0c8ffd5d39e;hp=3146e74657737ec084410005d4a4135bdf822361;hpb=70e80ade90af09300396706b8910e196a7928520;p=fs%2Flustre-release.git diff --git a/lnet/selftest/conrpc.c b/lnet/selftest/conrpc.c index 3146e74..e376ce3c 100644 --- a/lnet/selftest/conrpc.c +++ b/lnet/selftest/conrpc.c @@ -1,5 +1,4 @@ -/* - * -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- +/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- * vim:expandtab:shiftwidth=8:tabstop=8: * * GPL HEADER START @@ -17,8 +16,8 @@ * in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see [sun.com URL with a - * copy of GPLv2]. + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or @@ -27,7 +26,7 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. */ /* @@ -60,12 +59,12 @@ lstcon_rpc_done(srpc_client_rpc_t *rpc) LASSERT (crpc != NULL && rpc == crpc->crp_rpc); LASSERT (crpc->crp_posted && !crpc->crp_finished); - spin_lock(&rpc->crpc_lock); + cfs_spin_lock(&rpc->crpc_lock); if (crpc->crp_trans == NULL) { /* Orphan RPC is not in any transaction, * I'm just a poor body and nobody loves me */ - spin_unlock(&rpc->crpc_lock); + cfs_spin_unlock(&rpc->crpc_lock); /* release it */ lstcon_rpc_put(crpc); @@ -84,10 +83,10 @@ lstcon_rpc_done(srpc_client_rpc_t *rpc) } /* wakeup (transaction)thread if I'm the last RPC in the transaction */ - if (atomic_dec_and_test(&crpc->crp_trans->tas_remaining)) + if (cfs_atomic_dec_and_test(&crpc->crp_trans->tas_remaining)) cfs_waitq_signal(&crpc->crp_trans->tas_waitq); - spin_unlock(&rpc->crpc_lock); + cfs_spin_unlock(&rpc->crpc_lock); } int @@ -111,7 +110,7 @@ lstcon_rpc_init(lstcon_node_t *nd, int service, crpc->crp_static = !cached; CFS_INIT_LIST_HEAD(&crpc->crp_link); - atomic_inc(&console_session.ses_rpc_counter); + cfs_atomic_inc(&console_session.ses_rpc_counter); return 0; } @@ -123,15 +122,15 @@ lstcon_rpc_prep(lstcon_node_t *nd, int service, lstcon_rpc_t *crpc = NULL; int rc; - spin_lock(&console_session.ses_rpc_lock); + cfs_spin_lock(&console_session.ses_rpc_lock); - if (!list_empty(&console_session.ses_rpc_freelist)) { - crpc = list_entry(console_session.ses_rpc_freelist.next, - lstcon_rpc_t, crp_link); - list_del_init(&crpc->crp_link); + if (!cfs_list_empty(&console_session.ses_rpc_freelist)) { + crpc = cfs_list_entry(console_session.ses_rpc_freelist.next, + lstcon_rpc_t, crp_link); + cfs_list_del_init(&crpc->crp_link); } - spin_unlock(&console_session.ses_rpc_lock); + cfs_spin_unlock(&console_session.ses_rpc_lock); if (crpc == NULL) { LIBCFS_ALLOC(crpc, sizeof(*crpc)); @@ -156,7 +155,7 @@ lstcon_rpc_put(lstcon_rpc_t *crpc) srpc_bulk_t *bulk = &crpc->crp_rpc->crpc_bulk; int i; - LASSERT (list_empty(&crpc->crp_link)); + LASSERT (cfs_list_empty(&crpc->crp_link)); for (i = 0; i < bulk->bk_niov; i++) { if (bulk->bk_iovs[i].kiov_page == NULL) @@ -173,15 +172,16 @@ lstcon_rpc_put(lstcon_rpc_t *crpc) crpc->crp_static = 1; } else { - spin_lock(&console_session.ses_rpc_lock); + cfs_spin_lock(&console_session.ses_rpc_lock); - list_add(&crpc->crp_link, &console_session.ses_rpc_freelist); + cfs_list_add(&crpc->crp_link, + &console_session.ses_rpc_freelist); - spin_unlock(&console_session.ses_rpc_lock); + cfs_spin_unlock(&console_session.ses_rpc_lock); } /* RPC is not alive now */ - atomic_dec(&console_session.ses_rpc_counter); + cfs_atomic_dec(&console_session.ses_rpc_counter); } void @@ -191,7 +191,7 @@ lstcon_rpc_post(lstcon_rpc_t *crpc) LASSERT (trans != NULL); - atomic_inc(&trans->tas_remaining); + cfs_atomic_inc(&trans->tas_remaining); crpc->crp_posted = 1; sfw_post_rpc(crpc->crp_rpc); @@ -237,13 +237,14 @@ lstcon_rpc_trans_name(int transop) } int -lstcon_rpc_trans_prep(struct list_head *translist, +lstcon_rpc_trans_prep(cfs_list_t *translist, int transop, lstcon_rpc_trans_t **transpp) { lstcon_rpc_trans_t *trans; if (translist != NULL) { - list_for_each_entry(trans, translist, tas_link) { + cfs_list_for_each_entry_typed(trans, translist, + lstcon_rpc_trans_t, tas_link) { /* Can't enqueue two private transaction on * the same object */ if ((trans->tas_opc & transop) == LST_TRANS_PRIVATE) @@ -261,12 +262,12 @@ lstcon_rpc_trans_prep(struct list_head *translist, if (translist == NULL) CFS_INIT_LIST_HEAD(&trans->tas_olink); else - list_add_tail(&trans->tas_olink, translist); + cfs_list_add_tail(&trans->tas_olink, translist); - list_add_tail(&trans->tas_link, &console_session.ses_trans_list); + cfs_list_add_tail(&trans->tas_link, &console_session.ses_trans_list); CFS_INIT_LIST_HEAD(&trans->tas_rpcs_list); - atomic_set(&trans->tas_remaining, 0); + cfs_atomic_set(&trans->tas_remaining, 0); cfs_waitq_init(&trans->tas_waitq); *transpp = trans; @@ -277,7 +278,7 @@ lstcon_rpc_trans_prep(struct list_head *translist, void lstcon_rpc_trans_addreq(lstcon_rpc_trans_t *trans, lstcon_rpc_t *crpc) { - list_add_tail(&crpc->crp_link, &trans->tas_rpcs_list); + cfs_list_add_tail(&crpc->crp_link, &trans->tas_rpcs_list); crpc->crp_trans = trans; } @@ -288,21 +289,22 @@ lstcon_rpc_trans_abort(lstcon_rpc_trans_t *trans, int error) lstcon_rpc_t *crpc; lstcon_node_t *nd; - list_for_each_entry (crpc, &trans->tas_rpcs_list, crp_link) { + cfs_list_for_each_entry_typed (crpc, &trans->tas_rpcs_list, + lstcon_rpc_t, crp_link) { rpc = crpc->crp_rpc; - spin_lock(&rpc->crpc_lock); + cfs_spin_lock(&rpc->crpc_lock); if (!crpc->crp_posted || crpc->crp_stamp != 0) { /* rpc done or aborted already */ - spin_unlock(&rpc->crpc_lock); + cfs_spin_unlock(&rpc->crpc_lock); continue; } crpc->crp_stamp = cfs_time_current(); crpc->crp_status = error; - spin_unlock(&rpc->crpc_lock); + cfs_spin_unlock(&rpc->crpc_lock); sfw_abort_rpc(rpc); @@ -322,10 +324,10 @@ static int lstcon_rpc_trans_check(lstcon_rpc_trans_t *trans) { if (console_session.ses_shutdown && - !list_empty(&trans->tas_olink)) /* It's not an end session RPC */ + !cfs_list_empty(&trans->tas_olink)) /* Not an end session RPC */ return 1; - return (atomic_read(&trans->tas_remaining) == 0) ? 1: 0; + return (cfs_atomic_read(&trans->tas_remaining) == 0) ? 1: 0; } int @@ -334,7 +336,7 @@ lstcon_rpc_trans_postwait(lstcon_rpc_trans_t *trans, int timeout) lstcon_rpc_t *crpc; int rc; - if (list_empty(&trans->tas_rpcs_list)) + if (cfs_list_empty(&trans->tas_rpcs_list)) return 0; if (timeout < LST_TRANS_MIN_TIMEOUT) @@ -344,21 +346,22 @@ lstcon_rpc_trans_postwait(lstcon_rpc_trans_t *trans, int timeout) lstcon_rpc_trans_name(trans->tas_opc)); /* post all requests */ - list_for_each_entry (crpc, &trans->tas_rpcs_list, crp_link) { + cfs_list_for_each_entry_typed (crpc, &trans->tas_rpcs_list, + lstcon_rpc_t, crp_link) { LASSERT (!crpc->crp_posted); lstcon_rpc_post(crpc); } - mutex_up(&console_session.ses_mutex); + cfs_mutex_up(&console_session.ses_mutex); - rc = cfs_waitq_wait_event_interruptible_timeout(trans->tas_waitq, + cfs_waitq_wait_event_interruptible_timeout(trans->tas_waitq, lstcon_rpc_trans_check(trans), - timeout * HZ); + cfs_time_seconds(timeout), rc); rc = (rc > 0)? 0: ((rc < 0)? -EINTR: -ETIMEDOUT); - mutex_down(&console_session.ses_mutex); + cfs_mutex_down(&console_session.ses_mutex); if (console_session.ses_shutdown) rc = -ESHUTDOWN; @@ -428,7 +431,8 @@ lstcon_rpc_trans_stat(lstcon_rpc_trans_t *trans, lstcon_trans_stat_t *stat) memset(stat, 0, sizeof(*stat)); - list_for_each_entry(crpc, &trans->tas_rpcs_list, crp_link) { + cfs_list_for_each_entry_typed(crpc, &trans->tas_rpcs_list, + lstcon_rpc_t, crp_link) { lstcon_rpc_stat_total(stat, 1); rpc = crpc->crp_rpc; @@ -463,11 +467,11 @@ lstcon_rpc_trans_stat(lstcon_rpc_trans_t *trans, lstcon_trans_stat_t *stat) int lstcon_rpc_trans_interpreter(lstcon_rpc_trans_t *trans, - struct list_head *head_up, + cfs_list_t *head_up, lstcon_rpc_readent_func_t readent) { - struct list_head tmp; - struct list_head *next; + cfs_list_t tmp; + cfs_list_t *next; lstcon_rpc_ent_t *ent; srpc_generic_reply_t *rep; srpc_client_rpc_t *rpc; @@ -482,8 +486,10 @@ lstcon_rpc_trans_interpreter(lstcon_rpc_trans_t *trans, next = head_up; - list_for_each_entry(crpc, &trans->tas_rpcs_list, crp_link) { - if (copy_from_user(&tmp, next, sizeof(struct list_head))) + cfs_list_for_each_entry_typed(crpc, &trans->tas_rpcs_list, + lstcon_rpc_t, crp_link) { + if (cfs_copy_from_user(&tmp, next, + sizeof(cfs_list_t))) return -EFAULT; if (tmp.next == head_up) @@ -491,7 +497,7 @@ lstcon_rpc_trans_interpreter(lstcon_rpc_trans_t *trans, next = tmp.next; - ent = list_entry(next, lstcon_rpc_ent_t, rpe_link); + ent = cfs_list_entry(next, lstcon_rpc_ent_t, rpe_link); rpc = crpc->crp_rpc; @@ -501,16 +507,17 @@ lstcon_rpc_trans_interpreter(lstcon_rpc_trans_t *trans, nd = crpc->crp_node; - dur = cfs_time_sub(crpc->crp_stamp, - console_session.ses_id.ses_stamp); + dur = (cfs_duration_t)cfs_time_sub(crpc->crp_stamp, + (cfs_time_t)console_session.ses_id.ses_stamp); cfs_duration_usec(dur, &tv); - if (copy_to_user(&ent->rpe_peer, - &nd->nd_id, sizeof(lnet_process_id_t)) || - copy_to_user(&ent->rpe_stamp, &tv, sizeof(tv)) || - copy_to_user(&ent->rpe_state, - &nd->nd_state, sizeof(nd->nd_state)) || - copy_to_user(&ent->rpe_rpc_errno, &error, sizeof(error))) + if (cfs_copy_to_user(&ent->rpe_peer, + &nd->nd_id, sizeof(lnet_process_id_t)) || + cfs_copy_to_user(&ent->rpe_stamp, &tv, sizeof(tv)) || + cfs_copy_to_user(&ent->rpe_state, + &nd->nd_state, sizeof(nd->nd_state)) || + cfs_copy_to_user(&ent->rpe_rpc_errno, &error, + sizeof(error))) return -EFAULT; if (error != 0) @@ -519,10 +526,10 @@ lstcon_rpc_trans_interpreter(lstcon_rpc_trans_t *trans, /* RPC is done */ rep = (srpc_generic_reply_t *)&msg->msg_body.reply; - if (copy_to_user(&ent->rpe_sid, - &rep->sid, sizeof(lst_sid_t)) || - copy_to_user(&ent->rpe_fwk_errno, - &rep->status, sizeof(rep->status))) + if (cfs_copy_to_user(&ent->rpe_sid, + &rep->sid, sizeof(lst_sid_t)) || + cfs_copy_to_user(&ent->rpe_fwk_errno, + &rep->status, sizeof(rep->status))) return -EFAULT; if (readent == NULL) @@ -542,18 +549,19 @@ lstcon_rpc_trans_destroy(lstcon_rpc_trans_t *trans) lstcon_rpc_t *crpc; lstcon_rpc_t *tmp; int count = 0; - - list_for_each_entry_safe(crpc, tmp, - &trans->tas_rpcs_list, crp_link) { + + cfs_list_for_each_entry_safe_typed(crpc, tmp, + &trans->tas_rpcs_list, + lstcon_rpc_t, crp_link) { rpc = crpc->crp_rpc; - spin_lock(&rpc->crpc_lock); + cfs_spin_lock(&rpc->crpc_lock); /* free it if not posted or finished already */ if (!crpc->crp_posted || crpc->crp_finished) { - spin_unlock(&rpc->crpc_lock); + cfs_spin_unlock(&rpc->crpc_lock); - list_del_init(&crpc->crp_link); + cfs_list_del_init(&crpc->crp_link); lstcon_rpc_put(crpc); continue; @@ -561,26 +569,26 @@ lstcon_rpc_trans_destroy(lstcon_rpc_trans_t *trans) /* rpcs can be still not callbacked (even LNetMDUnlink is called) * because huge timeout for inaccessible network, don't make - * user wait for them, just abandon them, they will be recycled + * user wait for them, just abandon them, they will be recycled * in callback */ LASSERT (crpc->crp_status != 0); crpc->crp_node = NULL; crpc->crp_trans = NULL; - list_del_init(&crpc->crp_link); + cfs_list_del_init(&crpc->crp_link); count ++; - spin_unlock(&rpc->crpc_lock); + cfs_spin_unlock(&rpc->crpc_lock); - atomic_dec(&trans->tas_remaining); + cfs_atomic_dec(&trans->tas_remaining); } - LASSERT (atomic_read(&trans->tas_remaining) == 0); + LASSERT (cfs_atomic_read(&trans->tas_remaining) == 0); - list_del(&trans->tas_link); - if (!list_empty(&trans->tas_olink)) - list_del(&trans->tas_olink); + cfs_list_del(&trans->tas_link); + if (!cfs_list_empty(&trans->tas_olink)) + cfs_list_del(&trans->tas_olink); CDEBUG(D_NET, "Transaction %s destroyed with %d pending RPCs\n", lstcon_rpc_trans_name(trans->tas_opc), count); @@ -695,31 +703,31 @@ lstcon_statrpc_prep(lstcon_node_t *nd, lstcon_rpc_t **crpc) return 0; } -lnet_process_id_t * +lnet_process_id_packed_t * lstcon_next_id(int idx, int nkiov, lnet_kiov_t *kiov) { - lnet_process_id_t *pid; - int i; + lnet_process_id_packed_t *pid; + int i; - i = idx / (CFS_PAGE_SIZE / sizeof(lnet_process_id_t)); + i = idx / SFW_ID_PER_PAGE; LASSERT (i < nkiov); - pid = (lnet_process_id_t *)cfs_page_address(kiov[i].kiov_page); + pid = (lnet_process_id_packed_t *)cfs_page_address(kiov[i].kiov_page); - return &pid[idx % (CFS_PAGE_SIZE / sizeof(lnet_process_id_t))]; + return &pid[idx % SFW_ID_PER_PAGE]; } int lstcon_dstnodes_prep(lstcon_group_t *grp, int idx, int dist, int span, int nkiov, lnet_kiov_t *kiov) { - lnet_process_id_t *pid; - lstcon_ndlink_t *ndl; - lstcon_node_t *nd; - int start; - int end; - int i = 0; + lnet_process_id_packed_t *pid; + lstcon_ndlink_t *ndl; + lstcon_node_t *nd; + int start; + int end; + int i = 0; LASSERT (dist >= 1); LASSERT (span >= 1); @@ -731,7 +739,8 @@ lstcon_dstnodes_prep(lstcon_group_t *grp, int idx, start = ((idx / dist) * span) % grp->grp_nnode; end = ((idx / dist) * span + span - 1) % grp->grp_nnode; - list_for_each_entry(ndl, &grp->grp_ndl_list, ndl_link) { + cfs_list_for_each_entry_typed(ndl, &grp->grp_ndl_list, + lstcon_ndlink_t, ndl_link) { nd = ndl->ndl_node; if (i < start) { i ++; @@ -742,20 +751,23 @@ lstcon_dstnodes_prep(lstcon_group_t *grp, int idx, break; pid = lstcon_next_id((i - start), nkiov, kiov); - *pid = nd->nd_id; + pid->nid = nd->nd_id.nid; + pid->pid = nd->nd_id.pid; i++; } if (start <= end) /* done */ return 0; - list_for_each_entry(ndl, &grp->grp_ndl_list, ndl_link) { + cfs_list_for_each_entry_typed(ndl, &grp->grp_ndl_list, + lstcon_ndlink_t, ndl_link) { if (i > grp->grp_nnode + end) break; nd = ndl->ndl_node; pid = lstcon_next_id((i - start), nkiov, kiov); - *pid = nd->nd_id; + pid->nid = nd->nd_id.nid; + pid->pid = nd->nd_id.pid; i++; } @@ -849,7 +861,7 @@ lstcon_testrpc_prep(lstcon_node_t *nd, int transop, trq->tsr_bid = test->tes_hdr.tsb_id; trq->tsr_concur = test->tes_concur; trq->tsr_is_client = (transop == LST_TRANS_TSBCLIADD) ? 1 : 0; - trq->tsr_stop_onerr = test->tes_stop_onerr; + trq->tsr_stop_onerr = !!test->tes_stop_onerr; switch (test->tes_type) { case LST_TEST_PING: @@ -878,7 +890,7 @@ lstcon_rpc_stat_reply(int transop, srpc_msg_t *msg, srpc_batch_reply_t *bat_rep; srpc_test_reply_t *test_rep; srpc_stat_reply_t *stat_rep; - int errno = 0; + int rc = 0; switch (transop) { case LST_TRANS_SESNEW: @@ -895,7 +907,7 @@ lstcon_rpc_stat_reply(int transop, srpc_msg_t *msg, mksn_rep->mksn_status == EINVAL); lstcon_sesop_stat_failure(stat, 1); - errno = mksn_rep->mksn_status; + rc = mksn_rep->mksn_status; break; case LST_TRANS_SESEND: @@ -911,7 +923,7 @@ lstcon_rpc_stat_reply(int transop, srpc_msg_t *msg, rmsn_rep->rmsn_status == EINVAL); lstcon_sesop_stat_failure(stat, 1); - errno = rmsn_rep->rmsn_status; + rc = rmsn_rep->rmsn_status; break; case LST_TRANS_SESQRY: @@ -947,7 +959,7 @@ lstcon_rpc_stat_reply(int transop, srpc_msg_t *msg, } lstcon_tsbop_stat_failure(stat, 1); - errno = bat_rep->bar_status; + rc = bat_rep->bar_status; break; case LST_TRANS_TSBCLIQRY: @@ -963,7 +975,7 @@ lstcon_rpc_stat_reply(int transop, srpc_msg_t *msg, return; lstcon_tsbqry_stat_failure(stat, 1); - errno = bat_rep->bar_status; + rc = bat_rep->bar_status; break; case LST_TRANS_TSBCLIADD: @@ -976,7 +988,7 @@ lstcon_rpc_stat_reply(int transop, srpc_msg_t *msg, } lstcon_tsbop_stat_failure(stat, 1); - errno = test_rep->tsr_status; + rc = test_rep->tsr_status; break; case LST_TRANS_STATQRY: @@ -988,7 +1000,7 @@ lstcon_rpc_stat_reply(int transop, srpc_msg_t *msg, } lstcon_statqry_stat_failure(stat, 1); - errno = stat_rep->str_status; + rc = stat_rep->str_status; break; default: @@ -996,14 +1008,14 @@ lstcon_rpc_stat_reply(int transop, srpc_msg_t *msg, } if (stat->trs_fwk_errno == 0) - stat->trs_fwk_errno = errno; + stat->trs_fwk_errno = rc; return; } int -lstcon_rpc_trans_ndlist(struct list_head *ndlist, - struct list_head *translist, int transop, +lstcon_rpc_trans_ndlist(cfs_list_t *ndlist, + cfs_list_t *translist, int transop, void *arg, lstcon_rpc_cond_func_t condition, lstcon_rpc_trans_t **transpp) { @@ -1021,7 +1033,7 @@ lstcon_rpc_trans_ndlist(struct list_head *ndlist, return rc; } - list_for_each_entry(ndl, ndlist, ndl_link) { + cfs_list_for_each_entry_typed(ndl, ndlist, lstcon_ndlink_t, ndl_link) { rc = condition == NULL ? 1 : condition(transop, ndl->ndl_node, arg); @@ -1101,23 +1113,24 @@ lstcon_rpc_pinger(void *arg) /* RPC pinger is a special case of transaction, * it's called by timer at 8 seconds interval. */ - mutex_down(&console_session.ses_mutex); + cfs_mutex_down(&console_session.ses_mutex); if (console_session.ses_shutdown || console_session.ses_expired) { - mutex_up(&console_session.ses_mutex); + cfs_mutex_up(&console_session.ses_mutex); return; } if (!console_session.ses_expired && cfs_time_current_sec() - console_session.ses_laststamp > - console_session.ses_timeout) + (time_t)console_session.ses_timeout) console_session.ses_expired = 1; trans = console_session.ses_ping; LASSERT (trans != NULL); - list_for_each_entry(ndl, &console_session.ses_ndl_list, ndl_link) { + cfs_list_for_each_entry_typed(ndl, &console_session.ses_ndl_list, + lstcon_ndlink_t, ndl_link) { nd = ndl->ndl_node; if (console_session.ses_expired) { @@ -1141,23 +1154,23 @@ lstcon_rpc_pinger(void *arg) if (crpc->crp_rpc != NULL) { LASSERT (crpc->crp_trans == trans); - LASSERT (!list_empty(&crpc->crp_link)); + LASSERT (!cfs_list_empty(&crpc->crp_link)); - spin_lock(&crpc->crp_rpc->crpc_lock); + cfs_spin_lock(&crpc->crp_rpc->crpc_lock); LASSERT (crpc->crp_posted); if (!crpc->crp_finished) { /* in flight */ - spin_unlock(&crpc->crp_rpc->crpc_lock); + cfs_spin_unlock(&crpc->crp_rpc->crpc_lock); continue; } - spin_unlock(&crpc->crp_rpc->crpc_lock); + cfs_spin_unlock(&crpc->crp_rpc->crpc_lock); lstcon_rpc_get_reply(crpc, &rep); - list_del_init(&crpc->crp_link); + cfs_list_del_init(&crpc->crp_link); lstcon_rpc_put(crpc); } @@ -1167,7 +1180,7 @@ lstcon_rpc_pinger(void *arg) intv = cfs_duration_sec(cfs_time_sub(cfs_time_current(), nd->nd_stamp)); - if (intv < nd->nd_timeout / 2) + if (intv < (time_t)nd->nd_timeout / 2) continue; rc = lstcon_rpc_init(nd, SRPC_SERVICE_DEBUG, 0, 0, crpc); @@ -1188,16 +1201,16 @@ lstcon_rpc_pinger(void *arg) } if (console_session.ses_expired) { - mutex_up(&console_session.ses_mutex); + cfs_mutex_up(&console_session.ses_mutex); return; } CDEBUG(D_NET, "Ping %d nodes in session\n", count); - ptimer->stt_expires = cfs_time_current_sec() + LST_PING_INTERVAL; + ptimer->stt_expires = (cfs_time_t)(cfs_time_current_sec() + LST_PING_INTERVAL); stt_add_timer(ptimer); - mutex_up(&console_session.ses_mutex); + cfs_mutex_up(&console_session.ses_mutex); } int @@ -1206,8 +1219,8 @@ lstcon_rpc_pinger_start(void) stt_timer_t *ptimer; int rc; - LASSERT (list_empty(&console_session.ses_rpc_freelist)); - LASSERT (atomic_read(&console_session.ses_rpc_counter) == 0); + LASSERT (cfs_list_empty(&console_session.ses_rpc_freelist)); + LASSERT (cfs_atomic_read(&console_session.ses_rpc_counter) == 0); rc = lstcon_rpc_trans_prep(NULL, LST_TRANS_SESPING, &console_session.ses_ping); @@ -1217,7 +1230,7 @@ lstcon_rpc_pinger_start(void) } ptimer = &console_session.ses_ping_timer; - ptimer->stt_expires = cfs_time_current_sec() + LST_PING_INTERVAL; + ptimer->stt_expires = (cfs_time_t)(cfs_time_current_sec() + LST_PING_INTERVAL); stt_add_timer(ptimer); @@ -1245,16 +1258,17 @@ lstcon_rpc_cleanup_wait(void) { lstcon_rpc_trans_t *trans; lstcon_rpc_t *crpc; - struct list_head *pacer; - struct list_head zlist; + cfs_list_t *pacer; + cfs_list_t zlist; /* Called with hold of global mutex */ LASSERT (console_session.ses_shutdown); - while (!list_empty(&console_session.ses_trans_list)) { - list_for_each(pacer, &console_session.ses_trans_list) { - trans = list_entry(pacer, lstcon_rpc_trans_t, tas_link); + while (!cfs_list_empty(&console_session.ses_trans_list)) { + cfs_list_for_each(pacer, &console_session.ses_trans_list) { + trans = cfs_list_entry(pacer, lstcon_rpc_trans_t, + tas_link); CDEBUG(D_NET, "Session closed, wakeup transaction %s\n", lstcon_rpc_trans_name(trans->tas_opc)); @@ -1262,32 +1276,32 @@ lstcon_rpc_cleanup_wait(void) cfs_waitq_signal(&trans->tas_waitq); } - mutex_up(&console_session.ses_mutex); + cfs_mutex_up(&console_session.ses_mutex); CWARN("Session is shutting down, " "waiting for termination of transactions\n"); cfs_pause(cfs_time_seconds(1)); - mutex_down(&console_session.ses_mutex); + cfs_mutex_down(&console_session.ses_mutex); } - spin_lock(&console_session.ses_rpc_lock); + cfs_spin_lock(&console_session.ses_rpc_lock); - lst_wait_until((atomic_read(&console_session.ses_rpc_counter) == 0), + lst_wait_until((cfs_atomic_read(&console_session.ses_rpc_counter) == 0), console_session.ses_rpc_lock, "Network is not accessable or target is down, " "waiting for %d console RPCs to being recycled\n", - atomic_read(&console_session.ses_rpc_counter)); + cfs_atomic_read(&console_session.ses_rpc_counter)); - list_add(&zlist, &console_session.ses_rpc_freelist); - list_del_init(&console_session.ses_rpc_freelist); + cfs_list_add(&zlist, &console_session.ses_rpc_freelist); + cfs_list_del_init(&console_session.ses_rpc_freelist); - spin_unlock(&console_session.ses_rpc_lock); + cfs_spin_unlock(&console_session.ses_rpc_lock); - while (!list_empty(&zlist)) { - crpc = list_entry(zlist.next, lstcon_rpc_t, crp_link); + while (!cfs_list_empty(&zlist)) { + crpc = cfs_list_entry(zlist.next, lstcon_rpc_t, crp_link); - list_del(&crpc->crp_link); + cfs_list_del(&crpc->crp_link); LIBCFS_FREE(crpc, sizeof(lstcon_rpc_t)); } } @@ -1301,8 +1315,8 @@ lstcon_rpc_module_init(void) console_session.ses_ping = NULL; - spin_lock_init(&console_session.ses_rpc_lock); - atomic_set(&console_session.ses_rpc_counter, 0); + cfs_spin_lock_init(&console_session.ses_rpc_lock); + cfs_atomic_set(&console_session.ses_rpc_counter, 0); CFS_INIT_LIST_HEAD(&console_session.ses_rpc_freelist); return 0; @@ -1311,8 +1325,8 @@ lstcon_rpc_module_init(void) void lstcon_rpc_module_fini(void) { - LASSERT (list_empty(&console_session.ses_rpc_freelist)); - LASSERT (atomic_read(&console_session.ses_rpc_counter) == 0); + LASSERT (cfs_list_empty(&console_session.ses_rpc_freelist)); + LASSERT (cfs_atomic_read(&console_session.ses_rpc_counter) == 0); } #endif