Lines Matching refs:peer
580 void peer_online(struct hmdfs_peer *peer)
582 // To evaluate if someone else has made the peer online
583 u8 prev_stat = xchg(&peer->status, NODE_STAT_ONLINE);
588 WRITE_ONCE(peer->conn_time, jif_tmp);
589 WRITE_ONCE(peer->sbi->connections.recent_ol, jif_tmp);
590 hmdfs_queue_raw_node_evt(peer, RAW_NODE_EVT_ON);
783 struct hmdfs_peer *peer = container_of(ref, struct hmdfs_peer, ref_cnt);
784 struct mutex *lock = &peer->sbi->connections.node_lock;
786 if (!list_empty(&peer->list))
787 hmdfs_info("releasing a on-sbi peer: device_id %llu ",
788 peer->device_id);
790 hmdfs_info("releasing a redundant peer: device_id %llu ",
791 peer->device_id);
793 cancel_delayed_work_sync(&peer->evt_dwork);
794 list_del(&peer->list);
795 idr_destroy(&peer->msg_idr);
796 idr_destroy(&peer->file_id_idr);
797 flush_workqueue(peer->req_handle_wq);
798 flush_workqueue(peer->async_wq);
799 flush_workqueue(peer->retry_wb_wq);
800 destroy_workqueue(peer->dentry_wq);
801 destroy_workqueue(peer->req_handle_wq);
802 destroy_workqueue(peer->async_wq);
803 destroy_workqueue(peer->retry_wb_wq);
804 destroy_workqueue(peer->reget_conn_wq);
805 kfree(peer);
816 void peer_put(struct hmdfs_peer *peer)
818 struct mutex *lock = &peer->sbi->connections.node_lock;
820 kref_put_mutex(&peer->ref_cnt, hmdfs_peer_release, lock);
865 hmdfs_info("Try to disconnect peer: device_id %llu", node->device_id);
1046 struct hmdfs_peer *peer;
1049 peer = lookup_peer_by_cid_unsafe(sbi, peer2add->cid);
1050 if (peer)
1051 return peer;
1055 hmdfs_err("register peer %llu sysfs err %d",
1182 struct hmdfs_peer *peer = NULL, *on_sbi_peer = NULL;
1185 peer = lookup_peer_by_cid_unsafe(sbi, cid);
1187 if (peer) {
1188 hmdfs_info("Got a existing peer: device_id = %llu",
1189 peer->device_id);
1193 peer = alloc_peer(sbi, cid, devsl);
1194 if (unlikely(!peer)) {
1195 hmdfs_info("Failed to alloc a peer");
1200 on_sbi_peer = add_peer_unsafe(sbi, peer);
1203 peer_put(peer);
1204 peer = NULL;
1206 } else if (unlikely(on_sbi_peer != peer)) {
1207 hmdfs_info("Got a existing peer: device_id = %llu",
1209 peer_put(peer);
1210 peer = on_sbi_peer;
1212 hmdfs_info("Got a newly allocated peer: device_id = %llu",
1213 peer->device_id);
1217 return peer;
1227 con = head->peer;
1236 kref_put_lock(&head->ref, head_release, &head->peer->idr_lock);
1239 struct hmdfs_msg_idr_head *hmdfs_find_msg_head(struct hmdfs_peer *peer,
1244 spin_lock(&peer->idr_lock);
1245 head = idr_find(&peer->msg_idr, id);
1250 spin_unlock(&peer->idr_lock);
1255 int hmdfs_alloc_msg_idr(struct hmdfs_peer *peer, enum MSG_IDR_TYPE type,
1262 spin_lock(&peer->idr_lock);
1263 if (!peer->offline_start)
1264 ret = idr_alloc_cyclic(&peer->msg_idr, ptr,
1270 head->peer = peer;
1272 peer->msg_idr_process++;
1275 spin_unlock(&peer->idr_lock);