Lines Matching refs:im_seg

5974 rsmseg_unload(rsmseg_t *im_seg)  in rsmseg_unload()  argument
5986 ASSERT(im_seg->s_hdr.rsmrc_type == RSM_RESOURCE_IMPORT_SEGMENT); in rsmseg_unload()
5989 while (im_seg->s_state == RSM_STATE_MAPPING) in rsmseg_unload()
5990 cv_wait(&im_seg->s_cv, &im_seg->s_lock); in rsmseg_unload()
5997 if (im_seg->s_state == RSM_STATE_NEW) { in rsmseg_unload()
5998 rsmseglock_release(im_seg); in rsmseg_unload()
6002 } else if (im_seg->s_state == RSM_STATE_CONNECTING) { in rsmseg_unload()
6003 im_seg->s_state = RSM_STATE_ABORT_CONNECT; in rsmseg_unload()
6004 rsmsharelock_acquire(im_seg); in rsmseg_unload()
6005 im_seg->s_share->rsmsi_state = RSMSI_STATE_ABORT_CONNECT; in rsmseg_unload()
6006 rsmsharelock_release(im_seg); in rsmseg_unload()
6007 rsmseglock_release(im_seg); in rsmseg_unload()
6013 if (im_seg->s_flags & RSM_FORCE_DISCONNECT) { in rsmseg_unload()
6014 if (im_seg->s_ckl != NULL) { in rsmseg_unload()
6018 if (im_seg->s_mode & RSM_PERM_READ) { in rsmseg_unload()
6021 if (im_seg->s_mode & RSM_PERM_WRITE) { in rsmseg_unload()
6024 hdl = im_seg->s_ckl; in rsmseg_unload()
6036 (void) rsm_closeconnection(im_seg, &shared_cookie); in rsmseg_unload()
6045 request.rsmipc_key = im_seg->s_segid; in rsmseg_unload()
6047 rsmseglock_release(im_seg); in rsmseg_unload()
6048 (void) rsmipc_send(im_seg->s_node, &request, in rsmseg_unload()
6051 rsmseglock_release(im_seg); in rsmseg_unload()
6055 rsmseglock_release(im_seg); in rsmseg_unload()
7470 rsmseg_t *im_seg, *ex_seg; in rsm_iovec_ioctl() local
7536 im_seg = (rsmseg_t *)res; in rsm_iovec_ioctl()
7538 if (im_seg == NULL) { in rsm_iovec_ioctl()
7546 if (im_seg->s_type != RSM_RESOURCE_IMPORT_SEGMENT) { in rsm_iovec_ioctl()
7547 rsmseglock_release(im_seg); in rsm_iovec_ioctl()
7559 while ((im_seg->s_state == RSM_STATE_CONN_QUIESCE) || in rsm_iovec_ioctl()
7560 (im_seg->s_state == RSM_STATE_MAP_QUIESCE) || in rsm_iovec_ioctl()
7561 (im_seg->s_flags & RSM_DR_INPROGRESS)) { in rsm_iovec_ioctl()
7562 if (cv_wait_sig(&im_seg->s_cv, &im_seg->s_lock) == 0) { in rsm_iovec_ioctl()
7565 rsmseglock_release(im_seg); in rsm_iovec_ioctl()
7570 if ((im_seg->s_state != RSM_STATE_CONNECT) && in rsm_iovec_ioctl()
7571 (im_seg->s_state != RSM_STATE_ACTIVE)) { in rsm_iovec_ioctl()
7573 ASSERT(im_seg->s_state == RSM_STATE_DISCONNECT || in rsm_iovec_ioctl()
7574 im_seg->s_state == RSM_STATE_NEW); in rsm_iovec_ioctl()
7578 rsmseglock_release(im_seg); in rsm_iovec_ioctl()
7583 im_seg->s_rdmacnt++; in rsm_iovec_ioctl()
7584 rsmseglock_release(im_seg); in rsm_iovec_ioctl()
7634 iovec->remote_handle = im_seg->s_handle.in; in rsm_iovec_ioctl()
7643 rsmseglock_acquire(im_seg); in rsm_iovec_ioctl()
7644 im_seg->s_rdmacnt--; /* decrement the refcnt for importseg */ in rsm_iovec_ioctl()
7645 if (im_seg->s_rdmacnt == 0) { in rsm_iovec_ioctl()
7646 cv_broadcast(&im_seg->s_cv); in rsm_iovec_ioctl()
7648 rsmseglock_release(im_seg); in rsm_iovec_ioctl()
7654 e = im_seg->s_adapter->rsmpi_ops->rsm_memseg_import_putv( in rsm_iovec_ioctl()
7655 im_seg->s_adapter->rsmpi_handle, in rsm_iovec_ioctl()
7658 e = im_seg->s_adapter->rsmpi_ops->rsm_memseg_import_getv( in rsm_iovec_ioctl()
7659 im_seg->s_adapter->rsmpi_handle, in rsm_iovec_ioctl()
7681 request.rsmipc_key = im_seg->s_segid; in rsm_iovec_ioctl()
7684 e = rsmipc_send(im_seg->s_node, &request, RSM_NO_REPLY); in rsm_iovec_ioctl()
7693 rsmseglock_acquire(im_seg); in rsm_iovec_ioctl()
7694 im_seg->s_rdmacnt--; in rsm_iovec_ioctl()
7695 if (im_seg->s_rdmacnt == 0) { in rsm_iovec_ioctl()
7696 cv_broadcast(&im_seg->s_cv); in rsm_iovec_ioctl()
7698 rsmseglock_release(im_seg); in rsm_iovec_ioctl()