Lines Matching refs:segp
1678 rsmseg_t *segp) in rsmshare_get() argument
1719 rsmseglock_acquire(segp); in rsmshare_get()
1725 segp->s_share = shdatap; in rsmshare_get()
1727 rsmseglock_release(segp); in rsmshare_get()
9071 rsmseg_t *segp = (rsmseg_t *)resp; in rsm_quiesce_exp_seg() local
9076 "%s enter: key=%u\n", function, segp->s_key)); in rsm_quiesce_exp_seg()
9078 rsmseglock_acquire(segp); in rsm_quiesce_exp_seg()
9081 if ((segp->s_state == RSM_STATE_NEW_QUIESCED) || in rsm_quiesce_exp_seg()
9082 (segp->s_state == RSM_STATE_BIND_QUIESCED) || in rsm_quiesce_exp_seg()
9083 (segp->s_state == RSM_STATE_EXPORT_QUIESCING) || in rsm_quiesce_exp_seg()
9084 (segp->s_state == RSM_STATE_EXPORT_QUIESCED)) { in rsm_quiesce_exp_seg()
9085 rsmseglock_release(segp); in rsm_quiesce_exp_seg()
9088 segp->s_state)); in rsm_quiesce_exp_seg()
9092 if (segp->s_state == RSM_STATE_NEW) { in rsm_quiesce_exp_seg()
9093 segp->s_state = RSM_STATE_NEW_QUIESCED; in rsm_quiesce_exp_seg()
9094 rsmseglock_release(segp); in rsm_quiesce_exp_seg()
9097 segp->s_state)); in rsm_quiesce_exp_seg()
9101 if (segp->s_state == RSM_STATE_BIND) { in rsm_quiesce_exp_seg()
9103 (void) rsm_unbind_pages(segp); in rsm_quiesce_exp_seg()
9104 segp->s_state = RSM_STATE_BIND_QUIESCED; in rsm_quiesce_exp_seg()
9105 rsmseglock_release(segp); in rsm_quiesce_exp_seg()
9108 segp->s_state)); in rsm_quiesce_exp_seg()
9112 if (segp->s_state == RSM_STATE_EXPORT) { in rsm_quiesce_exp_seg()
9117 while ((segp->s_state == RSM_STATE_EXPORT) && in rsm_quiesce_exp_seg()
9118 (segp->s_rdmacnt != 0)) { in rsm_quiesce_exp_seg()
9119 cv_wait(&segp->s_cv, &segp->s_lock); in rsm_quiesce_exp_seg()
9122 if (segp->s_state != RSM_STATE_EXPORT) { in rsm_quiesce_exp_seg()
9131 segp->s_state = RSM_STATE_EXPORT_QUIESCING; in rsm_quiesce_exp_seg()
9132 rsmseglock_release(segp); in rsm_quiesce_exp_seg()
9139 segp->s_state)); in rsm_quiesce_exp_seg()
9144 rsmseglock_release(segp); in rsm_quiesce_exp_seg()
9151 rsmseg_t *segp = (rsmseg_t *)resp; in rsm_unquiesce_exp_seg() local
9164 rsmseglock_acquire(segp); in rsm_unquiesce_exp_seg()
9167 "%s enter: key=%u, state=%d\n", function, segp->s_key, in rsm_unquiesce_exp_seg()
9168 segp->s_state)); in rsm_unquiesce_exp_seg()
9170 if ((segp->s_state == RSM_STATE_NEW) || in rsm_unquiesce_exp_seg()
9171 (segp->s_state == RSM_STATE_BIND) || in rsm_unquiesce_exp_seg()
9172 (segp->s_state == RSM_STATE_EXPORT)) { in rsm_unquiesce_exp_seg()
9173 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9175 function, segp->s_state)); in rsm_unquiesce_exp_seg()
9179 if (segp->s_state == RSM_STATE_NEW_QUIESCED) { in rsm_unquiesce_exp_seg()
9180 segp->s_state = RSM_STATE_NEW; in rsm_unquiesce_exp_seg()
9181 cv_broadcast(&segp->s_cv); in rsm_unquiesce_exp_seg()
9182 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9184 function, segp->s_state)); in rsm_unquiesce_exp_seg()
9188 if (segp->s_state == RSM_STATE_BIND_QUIESCED) { in rsm_unquiesce_exp_seg()
9190 ret = rsm_bind_pages(&segp->s_cookie, segp->s_region.r_vaddr, in rsm_unquiesce_exp_seg()
9191 segp->s_len, segp->s_proc); in rsm_unquiesce_exp_seg()
9193 segp->s_state = RSM_STATE_BIND; in rsm_unquiesce_exp_seg()
9195 segp->s_state = RSM_STATE_NEW; in rsm_unquiesce_exp_seg()
9197 cv_broadcast(&segp->s_cv); in rsm_unquiesce_exp_seg()
9198 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9204 while (segp->s_state == RSM_STATE_EXPORT_QUIESCING) { in rsm_unquiesce_exp_seg()
9206 cv_wait(&segp->s_cv, &segp->s_lock); in rsm_unquiesce_exp_seg()
9209 if (segp->s_state == RSM_STATE_EXPORT_QUIESCED) { in rsm_unquiesce_exp_seg()
9211 ret = rsm_bind_pages(&segp->s_cookie, segp->s_region.r_vaddr, in rsm_unquiesce_exp_seg()
9212 segp->s_len, segp->s_proc); in rsm_unquiesce_exp_seg()
9216 acl_len = segp->s_acl_len; in rsm_unquiesce_exp_seg()
9217 acl = segp->s_acl; in rsm_unquiesce_exp_seg()
9218 rsmpi_acl = segp->s_acl_in; in rsm_unquiesce_exp_seg()
9219 segp->s_acl_len = 0; in rsm_unquiesce_exp_seg()
9220 segp->s_acl = NULL; in rsm_unquiesce_exp_seg()
9221 segp->s_acl_in = NULL; in rsm_unquiesce_exp_seg()
9222 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9224 rsmexport_rm(segp); in rsm_unquiesce_exp_seg()
9228 rsmseglock_acquire(segp); in rsm_unquiesce_exp_seg()
9229 segp->s_state = RSM_STATE_NEW; in rsm_unquiesce_exp_seg()
9230 cv_broadcast(&segp->s_cv); in rsm_unquiesce_exp_seg()
9231 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9246 if (segp->s_acl != (rsmapi_access_entry_t *)NULL) { in rsm_unquiesce_exp_seg()
9247 if ((segp->s_acl[0].ae_node == my_nodeid) && in rsm_unquiesce_exp_seg()
9248 (segp->s_acl[0].ae_permission == 0)) { in rsm_unquiesce_exp_seg()
9249 segp->s_state = RSM_STATE_EXPORT; in rsm_unquiesce_exp_seg()
9250 cv_broadcast(&segp->s_cv); in rsm_unquiesce_exp_seg()
9251 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9257 xbuf = ddi_umem_iosetup(segp->s_cookie, 0, segp->s_len, B_WRITE, in rsm_unquiesce_exp_seg()
9264 adapter = segp->s_adapter; in rsm_unquiesce_exp_seg()
9266 if (segp->s_flags & RSMKA_ALLOW_UNBIND_REBIND) { in rsm_unquiesce_exp_seg()
9270 if (segp->s_flags & RSMKA_SET_RESOURCE_DONTWAIT) { in rsm_unquiesce_exp_seg()
9277 adapter->rsmpi_handle, &segp->s_handle.out, in rsm_unquiesce_exp_seg()
9278 segp->s_len, create_flags, &mem, in rsm_unquiesce_exp_seg()
9282 acl_len = segp->s_acl_len; in rsm_unquiesce_exp_seg()
9283 acl = segp->s_acl; in rsm_unquiesce_exp_seg()
9284 rsmpi_acl = segp->s_acl_in; in rsm_unquiesce_exp_seg()
9285 segp->s_acl_len = 0; in rsm_unquiesce_exp_seg()
9286 segp->s_acl = NULL; in rsm_unquiesce_exp_seg()
9287 segp->s_acl_in = NULL; in rsm_unquiesce_exp_seg()
9288 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9290 rsmexport_rm(segp); in rsm_unquiesce_exp_seg()
9294 rsmseglock_acquire(segp); in rsm_unquiesce_exp_seg()
9295 segp->s_state = RSM_STATE_BIND; in rsm_unquiesce_exp_seg()
9296 cv_broadcast(&segp->s_cv); in rsm_unquiesce_exp_seg()
9297 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9305 segp->s_handle.out, segp->s_acl_in, segp->s_acl_len, in rsm_unquiesce_exp_seg()
9306 segp->s_segid, RSM_RESOURCE_DONTWAIT, NULL); in rsm_unquiesce_exp_seg()
9309 acl_len = segp->s_acl_len; in rsm_unquiesce_exp_seg()
9310 acl = segp->s_acl; in rsm_unquiesce_exp_seg()
9311 rsmpi_acl = segp->s_acl_in; in rsm_unquiesce_exp_seg()
9312 segp->s_acl_len = 0; in rsm_unquiesce_exp_seg()
9313 segp->s_acl = NULL; in rsm_unquiesce_exp_seg()
9314 segp->s_acl_in = NULL; in rsm_unquiesce_exp_seg()
9315 adapter->rsmpi_ops->rsm_seg_destroy(segp->s_handle.out); in rsm_unquiesce_exp_seg()
9316 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9318 rsmexport_rm(segp); in rsm_unquiesce_exp_seg()
9322 rsmseglock_acquire(segp); in rsm_unquiesce_exp_seg()
9323 segp->s_state = RSM_STATE_BIND; in rsm_unquiesce_exp_seg()
9324 cv_broadcast(&segp->s_cv); in rsm_unquiesce_exp_seg()
9325 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9332 segp->s_state = RSM_STATE_EXPORT; in rsm_unquiesce_exp_seg()
9333 cv_broadcast(&segp->s_cv); in rsm_unquiesce_exp_seg()
9334 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9340 rsmseglock_release(segp); in rsm_unquiesce_exp_seg()
9348 rsmseg_t *segp = (rsmseg_t *)resp; in rsm_quiesce_imp_seg() local
9353 "%s enter: key=%u\n", function, segp->s_key)); in rsm_quiesce_imp_seg()
9355 rsmseglock_acquire(segp); in rsm_quiesce_imp_seg()
9356 segp->s_flags |= RSM_DR_INPROGRESS; in rsm_quiesce_imp_seg()
9358 while (segp->s_rdmacnt != 0) { in rsm_quiesce_imp_seg()
9360 cv_wait(&segp->s_cv, &segp->s_lock); in rsm_quiesce_imp_seg()
9363 rsmseglock_release(segp); in rsm_quiesce_imp_seg()
9372 rsmseg_t *segp = (rsmseg_t *)resp; in rsm_unquiesce_imp_seg() local
9377 "%s enter: key=%u\n", function, segp->s_key)); in rsm_unquiesce_imp_seg()
9379 rsmseglock_acquire(segp); in rsm_unquiesce_imp_seg()
9381 segp->s_flags &= ~RSM_DR_INPROGRESS; in rsm_unquiesce_imp_seg()
9383 cv_broadcast(&segp->s_cv); in rsm_unquiesce_imp_seg()
9385 rsmseglock_release(segp); in rsm_unquiesce_imp_seg()