Lines Matching refs:sr

76 static void smb_oplock_hdl_update(smb_request_t *sr);
79 static void smb_oplock_wait_break_cancel(smb_request_t *sr);
166 smb_request_t *sr = NULL; in smb_oplock_ind_break_in_ack() local
201 sr = smb_request_alloc(ack_sr->session, 0); in smb_oplock_ind_break_in_ack()
202 if (sr == NULL) { in smb_oplock_ind_break_in_ack()
204 sr = smb_request_alloc(sv->sv_session, 0); in smb_oplock_ind_break_in_ack()
206 if (sr == NULL) { in smb_oplock_ind_break_in_ack()
219 sr->sr_state = SMB_REQ_STATE_SUBMITTED; in smb_oplock_ind_break_in_ack()
220 sr->smb2_async = B_TRUE; in smb_oplock_ind_break_in_ack()
221 sr->user_cr = zone_kcred(); in smb_oplock_ind_break_in_ack()
222 sr->fid_ofile = ofile; in smb_oplock_ind_break_in_ack()
224 sr->tid_tree = ofile->f_tree; in smb_oplock_ind_break_in_ack()
225 smb_tree_hold_internal(sr->tid_tree); in smb_oplock_ind_break_in_ack()
228 sr->uid_user = ofile->f_user; in smb_oplock_ind_break_in_ack()
229 smb_user_hold_internal(sr->uid_user); in smb_oplock_ind_break_in_ack()
234 sr->arg.olbrk.NewLevel = NewLevel; in smb_oplock_ind_break_in_ack()
235 sr->arg.olbrk.AckRequired = AckRequired; in smb_oplock_ind_break_in_ack()
241 sr->arg.olbrk.OldLevel = ofile->f_oplock.og_breakto; in smb_oplock_ind_break_in_ack()
243 smb_oplock_hdl_update(sr); in smb_oplock_ind_break_in_ack()
250 sr->smb2_cmd_code = SMB2_OPLOCK_BREAK; in smb_oplock_ind_break_in_ack()
251 smb2sr_append_postwork(ack_sr, sr); in smb_oplock_ind_break_in_ack()
256 sr->smb2_status = STATUS_CANT_GRANT; in smb_oplock_ind_break_in_ack()
258 smb_oplock_async_break, sr, TQ_SLEEP); in smb_oplock_ind_break_in_ack()
282 smb_request_t *sr = NULL; in smb_oplock_ind_break() local
338 sr = smb_request_alloc(ofile->f_session, 0); in smb_oplock_ind_break()
339 if (sr == NULL) in smb_oplock_ind_break()
340 sr = smb_request_alloc(sv->sv_session, 0); in smb_oplock_ind_break()
341 if (sr == NULL) { in smb_oplock_ind_break()
354 sr->sr_state = SMB_REQ_STATE_SUBMITTED; in smb_oplock_ind_break()
355 sr->smb2_async = B_TRUE; in smb_oplock_ind_break()
356 sr->user_cr = zone_kcred(); in smb_oplock_ind_break()
357 sr->fid_ofile = ofile; in smb_oplock_ind_break()
359 sr->tid_tree = ofile->f_tree; in smb_oplock_ind_break()
360 smb_tree_hold_internal(sr->tid_tree); in smb_oplock_ind_break()
363 sr->uid_user = ofile->f_user; in smb_oplock_ind_break()
364 smb_user_hold_internal(sr->uid_user); in smb_oplock_ind_break()
369 sr->arg.olbrk.NewLevel = NewLevel; in smb_oplock_ind_break()
370 sr->arg.olbrk.AckRequired = AckRequired; in smb_oplock_ind_break()
371 sr->smb2_status = CompletionStatus; in smb_oplock_ind_break()
377 sr->arg.olbrk.OldLevel = ofile->f_oplock.og_breakto; in smb_oplock_ind_break()
379 smb_oplock_hdl_update(sr); in smb_oplock_ind_break()
383 smb_oplock_async_break, sr, TQ_SLEEP); in smb_oplock_ind_break()
399 smb_request_t *sr = arg; in smb_oplock_async_break() local
402 SMB_REQ_VALID(sr); in smb_oplock_async_break()
404 CompletionStatus = sr->smb2_status; in smb_oplock_async_break()
405 sr->smb2_status = NT_STATUS_SUCCESS; in smb_oplock_async_break()
407 mutex_enter(&sr->sr_mutex); in smb_oplock_async_break()
408 sr->sr_worker = curthread; in smb_oplock_async_break()
409 sr->sr_state = SMB_REQ_STATE_ACTIVE; in smb_oplock_async_break()
410 mutex_exit(&sr->sr_mutex); in smb_oplock_async_break()
421 smb_oplock_send_break(sr); in smb_oplock_async_break()
430 if (sr->dh_nvl_dirty) { in smb_oplock_async_break()
431 sr->dh_nvl_dirty = B_FALSE; in smb_oplock_async_break()
432 smb2_dh_update_nvfile(sr); in smb_oplock_async_break()
435 sr->sr_state = SMB_REQ_STATE_COMPLETED; in smb_oplock_async_break()
436 smb_request_free(sr); in smb_oplock_async_break()
453 smb_oplock_send_break(smb_request_t *sr) in smb_oplock_send_break() argument
455 smb_ofile_t *ofile = sr->fid_ofile; in smb_oplock_send_break()
458 smb2_lease_send_break(sr); in smb_oplock_send_break()
460 smb2_oplock_send_break(sr); in smb_oplock_send_break()
462 smb1_oplock_send_break(sr); in smb_oplock_send_break()
539 smb_oplock_hdl_update(smb_request_t *sr) in smb_oplock_hdl_update() argument
541 smb_ofile_t *ofile = sr->fid_ofile; in smb_oplock_hdl_update()
543 uint32_t NewLevel = sr->arg.olbrk.NewLevel; in smb_oplock_hdl_update()
544 boolean_t AckReq = sr->arg.olbrk.AckRequired; in smb_oplock_hdl_update()
576 smb2_dh_update_oplock(sr, ofile); in smb_oplock_hdl_update()
619 smb_oplock_wait_ack_cancel(smb_request_t *sr) in smb_oplock_wait_ack_cancel() argument
621 kcondvar_t *cvp = sr->cancel_arg2; in smb_oplock_wait_ack_cancel()
622 smb_ofile_t *ofile = sr->fid_ofile; in smb_oplock_wait_ack_cancel()
643 smb_oplock_wait_ack(smb_request_t *sr, uint32_t NewLevel) in smb_oplock_wait_ack() argument
645 smb_ofile_t *ofile = sr->fid_ofile; in smb_oplock_wait_ack()
679 mutex_enter(&sr->sr_mutex); in smb_oplock_wait_ack()
680 if (sr->sr_state != SMB_REQ_STATE_ACTIVE) { in smb_oplock_wait_ack()
681 mutex_exit(&sr->sr_mutex); in smb_oplock_wait_ack()
684 sr->sr_state = SMB_REQ_STATE_WAITING_OLBRK; in smb_oplock_wait_ack()
685 sr->cancel_method = smb_oplock_wait_ack_cancel; in smb_oplock_wait_ack()
686 sr->cancel_arg2 = cv_p; in smb_oplock_wait_ack()
687 mutex_exit(&sr->sr_mutex); in smb_oplock_wait_ack()
705 fname = smb_srm_zalloc(sr, MAXPATHLEN); in smb_oplock_wait_ack()
728 sr->session->ip_addr_str, opname, fname); in smb_oplock_wait_ack()
741 mutex_enter(&sr->sr_mutex); in smb_oplock_wait_ack()
742 srstate = sr->sr_state; in smb_oplock_wait_ack()
743 mutex_exit(&sr->sr_mutex); in smb_oplock_wait_ack()
753 mutex_enter(&sr->sr_mutex); in smb_oplock_wait_ack()
755 switch (sr->sr_state) { in smb_oplock_wait_ack()
758 sr->sr_state = SMB_REQ_STATE_ACTIVE; in smb_oplock_wait_ack()
763 cv_wait(&sr->sr_st_cv, &sr->sr_mutex); in smb_oplock_wait_ack()
772 sr->cancel_method = NULL; in smb_oplock_wait_ack()
773 sr->cancel_arg2 = NULL; in smb_oplock_wait_ack()
774 mutex_exit(&sr->sr_mutex); in smb_oplock_wait_ack()
784 smb_oplock_wait_break_cancel(smb_request_t *sr) in smb_oplock_wait_break_cancel() argument
786 smb_node_t *node = sr->cancel_arg2; in smb_oplock_wait_break_cancel()
813 smb_oplock_wait_break(smb_request_t *sr, smb_node_t *node, int timeout) in smb_oplock_wait_break() argument
830 mutex_enter(&sr->sr_mutex); in smb_oplock_wait_break()
831 if (sr->sr_state != SMB_REQ_STATE_ACTIVE) { in smb_oplock_wait_break()
832 mutex_exit(&sr->sr_mutex); in smb_oplock_wait_break()
835 sr->sr_state = SMB_REQ_STATE_WAITING_OLBRK; in smb_oplock_wait_break()
836 sr->cancel_method = smb_oplock_wait_break_cancel; in smb_oplock_wait_break()
837 sr->cancel_arg2 = node; in smb_oplock_wait_break()
838 mutex_exit(&sr->sr_mutex); in smb_oplock_wait_break()
859 mutex_enter(&sr->sr_mutex); in smb_oplock_wait_break()
860 srstate = sr->sr_state; in smb_oplock_wait_break()
861 mutex_exit(&sr->sr_mutex); in smb_oplock_wait_break()
871 mutex_enter(&sr->sr_mutex); in smb_oplock_wait_break()
873 switch (sr->sr_state) { in smb_oplock_wait_break()
876 sr->sr_state = SMB_REQ_STATE_ACTIVE; in smb_oplock_wait_break()
880 cv_wait(&sr->sr_st_cv, &sr->sr_mutex); in smb_oplock_wait_break()
889 sr->cancel_method = NULL; in smb_oplock_wait_break()
890 sr->cancel_arg2 = NULL; in smb_oplock_wait_break()
891 mutex_exit(&sr->sr_mutex); in smb_oplock_wait_break()