ipc_info
bzero(&ipc_info, sizeof (smb_ipc_t));
(void) smb_getsamaccount(ipc_info.user, SMB_USERNAME_MAXLEN);
rc = smb_get_machine_passwd(ipc_info.passwd, SMBAUTH_HASH_SZ);
*ipc_info.passwd = 0;
(void) strlcpy(ipc_info.user, plain_user, sizeof (ipc_info.user));
(void) memcpy(ipc_info.passwd, passwd_hash, SMBAUTH_HASH_SZ);
(void) smb_getsamaccount(ipc_info.user, SMB_USERNAME_MAXLEN);
(void) smb_get_machine_passwd(ipc_info.passwd, SMBAUTH_HASH_SZ);
(void) memcpy(&ipc_orig_info, &ipc_info, sizeof (smb_ipc_t));
(void) strlcpy(ipc_info.user, ipc_orig_info.user,
sizeof (ipc_info.user));
(void) memcpy(ipc_info.passwd, ipc_orig_info.passwd,
sizeof (ipc_info.passwd));
(void) strlcpy(buf, ipc_info.user, buflen);
(void) memcpy(buf, ipc_info.passwd, SMBAUTH_HASH_SZ);
static smb_ipc_t ipc_info;
ipc_info_t *ipc_info;
ipc_info = lookup_ipc_info(remote_node);
if (ipc_info == NULL) {
ipc_info = init_ipc_info(remote_node, B_TRUE);
"rsmka_node_alive: new ipc_info = %lx\n", ipc_info));
ASSERT(ipc_info->node_is_alive == B_FALSE);
ipc_info->node_is_alive = B_TRUE;
pathup_to_pathactive(ipc_info, remote_node);
ipc_info_t *ipc_info;
ipc_info = lookup_ipc_info(remote_node);
if (ipc_info == NULL)
ASSERT(ipc_info->node_is_alive == B_TRUE);
ipc_info->node_is_alive = B_FALSE;
ipc_info_t *ipc_info;
ipc_info = lookup_ipc_info(remote_node);
sendq_token = ipc_info->token_list;
IPCINFO_RELE_NOLOCK(ipc_info);
ipc_info = lookup_ipc_info(remote_node);
sendq_token = ipc_info->token_list;
if (sendq_token == ipc_info->token_list)
pathup_to_pathactive(ipc_info_t *ipc_info, rsm_node_id_t remote_node)
token = ipc_info->token_list;
if (token == ipc_info->token_list)
ipc_info_t *ipc_info;
ipc_info = ipc_info_head;
if (ipc_info == NULL) {
while (ipc_info->remote_node != remote_node) {
ipc_info = ipc_info->next;
if (ipc_info == NULL) {
return (ipc_info);
ipc_info_t *ipc_info;
ipc_info = kmem_zalloc(sizeof (ipc_info_t), KM_SLEEP);
ipc_info->remote_node = remote_node;
ipc_info->node_is_alive = state;
"init_ipc_info:ipc_info_head = %lx\n", ipc_info));
ipc_info_head = ipc_info;
ipc_info->next = NULL;
ipc_info->next = ipc_info_head;
ipc_info_head = ipc_info;
ipc_info->remote_node = remote_node;
return (ipc_info);
destroy_ipc_info(ipc_info_t *ipc_info)
while (current != ipc_info) {
ipc_info_t *ipc_info;
ipc_info = lookup_ipc_info(remote_node);
if (ipc_info == NULL) {
ipc_info = init_ipc_info(remote_node, B_FALSE);
"link_sendq_token: new ipc_info = %lx\n", ipc_info));
"link_sendq_token: ipc_info = %lx\n", ipc_info));
if (ipc_info->token_list == NULL) {
ipc_info->token_list = token;
ipc_info->current_token = token;
token->next = ipc_info->token_list->next;
ipc_info->token_list->next = token;
ipc_info->token_list = token;
ipc_info_t *ipc_info;
ipc_info = lookup_ipc_info(remote_node);
if (ipc_info == NULL) {
prev = ipc_info->token_list;
start = current = ipc_info->token_list->next;
if (ipc_info->token_list == token)
ipc_info->token_list = prev;
ipc_info->current_token = token->next;
ipc_info->token_list = NULL;
ipc_info->current_token = NULL;
ipc_info_t *ipc_info;
ipc_info = lookup_ipc_info(remote_node);
if (ipc_info == NULL) {
if (ipc_info->node_is_alive == B_TRUE) {
token = first_token = ipc_info->current_token;
ipc_info->current_token = token->next;
ipc_info_t *ipc_info;
ipc_info = lookup_ipc_info(remote_node);
if (ipc_info == NULL) {
if (ipc_info->node_is_alive == B_TRUE) {
struct ipc_info *next;
#define IPCINFO_HOLD(ipc_info) { \
(ipc_info)->ref_cnt++; \
ASSERT((ipc_info)->ref_cnt != 0); \
#define IPCINFO_HOLD_NOLOCK(ipc_info) { \
(ipc_info)->ref_cnt++; \
ASSERT((ipc_info)->ref_cnt != 0); \
#define IPCINFO_RELE(ipc_info) { \
(ipc_info)->ref_cnt--; \
ASSERT((ipc_info)->ref_cnt >= 0); \
#define IPCINFO_RELE_NOLOCK(ipc_info) { \
(ipc_info)->ref_cnt--; \
ASSERT((ipc_info)->ref_cnt >= 0); \