Lines Matching refs:msgreq
195 nfs_lockdmsg_enqueue(LOCKD_MSG_REQUEST *msgreq) in nfs_lockdmsg_enqueue() argument
200 if (!mr || (msgreq->lmr_msg.lm_xid > mr->lmr_msg.lm_xid)) { in nfs_lockdmsg_enqueue()
202 TAILQ_INSERT_TAIL(&nfs_pendlockq, msgreq, lmr_next); in nfs_lockdmsg_enqueue()
206 while (mr && (msgreq->lmr_msg.lm_xid > mr->lmr_msg.lm_xid)) { in nfs_lockdmsg_enqueue()
210 TAILQ_INSERT_AFTER(&nfs_pendlockq, mr, msgreq, lmr_next); in nfs_lockdmsg_enqueue()
212 TAILQ_INSERT_HEAD(&nfs_pendlockq, msgreq, lmr_next); in nfs_lockdmsg_enqueue()
221 nfs_lockdmsg_dequeue(LOCKD_MSG_REQUEST *msgreq) in nfs_lockdmsg_dequeue() argument
223 TAILQ_REMOVE(&nfs_pendlockq, msgreq, lmr_next); in nfs_lockdmsg_dequeue()
267 nfs_lockdmsg_compare_to_answer(LOCKD_MSG_REQUEST *msgreq, struct lockd_ans *ansp) in nfs_lockdmsg_compare_to_answer() argument
272 if (msgreq->lmr_msg.lm_fl.l_pid != ansp->la_pid) { in nfs_lockdmsg_compare_to_answer()
275 if (msgreq->lmr_msg.lm_fl.l_start != ansp->la_start) { in nfs_lockdmsg_compare_to_answer()
278 if (msgreq->lmr_msg.lm_fl.l_len != ansp->la_len) { in nfs_lockdmsg_compare_to_answer()
281 if (msgreq->lmr_msg.lm_fh_len != ansp->la_fh_len) { in nfs_lockdmsg_compare_to_answer()
284 if (bcmp(msgreq->lmr_msg.lm_fh, ansp->la_fh, ansp->la_fh_len)) { in nfs_lockdmsg_compare_to_answer()
418 LOCKD_MSG_REQUEST *msgreq, in nfs3_lockd_request() argument
422 LOCKD_MSG *msg = &msgreq->lmr_msg; in nfs3_lockd_request()
458 nfs_lockdmsg_enqueue(msgreq); in nfs3_lockd_request()
497 if (!msgreq->lmr_answered) { in nfs3_lockd_request()
498 error = msleep(msgreq, &nfs_lock_mutex, slpflag | PUSER, "lockd", &ts); in nfs3_lockd_request()
501 if (msgreq->lmr_answered) { in nfs3_lockd_request()
510 if ((msgreq->lmr_errno == ENOTSUP) && nmp && in nfs3_lockd_request()
600 if ((msgreq->lmr_errno == EINPROGRESS) && in nfs3_lockd_request()
604 nfs_lockdmsg_dequeue(msgreq); in nfs3_lockd_request()
606 nfs_lockdmsg_enqueue(msgreq); in nfs3_lockd_request()
607 msgreq->lmr_saved_errno = error; in nfs3_lockd_request()
608 msgreq->lmr_errno = 0; in nfs3_lockd_request()
609 msgreq->lmr_answered = 0; in nfs3_lockd_request()
620 if ((msgreq->lmr_errno != EINPROGRESS) && in nfs3_lockd_request()
634 if (msgreq->lmr_errno == EINPROGRESS) { in nfs3_lockd_request()
647 nfs_lockdmsg_dequeue(msgreq); in nfs3_lockd_request()
649 nfs_lockdmsg_enqueue(msgreq); in nfs3_lockd_request()
650 msgreq->lmr_saved_errno = msgreq->lmr_errno; in nfs3_lockd_request()
651 msgreq->lmr_errno = 0; in nfs3_lockd_request()
652 msgreq->lmr_answered = 0; in nfs3_lockd_request()
676 if (msgreq->lmr_answered && (msg->lm_flags & LOCKD_MSG_DENIED_GRACE)) { in nfs3_lockd_request()
683 msgreq->lmr_saved_errno = msgreq->lmr_errno = error = NFSERR_GRACE; in nfs3_lockd_request()
686 if (msgreq->lmr_errno == EINPROGRESS) { in nfs3_lockd_request()
690 msgreq->lmr_answered = 0; in nfs3_lockd_request()
695 (msgreq->lmr_saved_errno == EINPROGRESS)) { in nfs3_lockd_request()
715 error = msgreq->lmr_saved_errno; in nfs3_lockd_request()
717 error = msgreq->lmr_errno; in nfs3_lockd_request()
728 nfs_lockdmsg_dequeue(msgreq); in nfs3_lockd_request()
754 nfs_lockdmsg_dequeue(msgreq); in nfs3_lockd_request()
777 LOCKD_MSG_REQUEST msgreq; in nfs3_setlock_rpc() local
794 bzero(&msgreq, sizeof(msgreq)); in nfs3_setlock_rpc()
795 msg = &msgreq.lmr_msg; in nfs3_setlock_rpc()
813 error = nfs3_lockd_request(np, 0, &msgreq, flags, thd); in nfs3_setlock_rpc()
834 LOCKD_MSG_REQUEST msgreq; in nfs3_unlock_rpc() local
843 bzero(&msgreq, sizeof(msgreq)); in nfs3_unlock_rpc()
844 msg = &msgreq.lmr_msg; in nfs3_unlock_rpc()
856 return nfs3_lockd_request(np, F_UNLCK, &msgreq, flags, thd); in nfs3_unlock_rpc()
873 LOCKD_MSG_REQUEST msgreq; in nfs3_getlock_rpc() local
882 bzero(&msgreq, sizeof(msgreq)); in nfs3_getlock_rpc()
883 msg = &msgreq.lmr_msg; in nfs3_getlock_rpc()
896 error = nfs3_lockd_request(np, 0, &msgreq, 0, vfs_context_thread(ctx)); in nfs3_getlock_rpc()
898 if (!error && (msg->lm_flags & LOCKD_MSG_TEST) && !msgreq.lmr_errno) { in nfs3_getlock_rpc()
920 LOCKD_MSG_REQUEST *msgreq; in nfslockdans() local
937 msgreq = nfs_lockdmsg_find_by_xid(ansp->la_xid); in nfslockdans()
945 if (!msgreq || nfs_lockdmsg_compare_to_answer(msgreq, ansp)) { in nfslockdans()
946 msgreq = nfs_lockdmsg_find_by_answer(ansp); in nfslockdans()
952 if (msgreq && (msgreq->lmr_msg.lm_flags & LOCKD_MSG_CANCEL)) { in nfslockdans()
953 msgreq = NULL; in nfslockdans()
956 if (!msgreq) { in nfslockdans()
961 msgreq->lmr_errno = ansp->la_errno; in nfslockdans()
962 if ((msgreq->lmr_msg.lm_flags & LOCKD_MSG_TEST) && msgreq->lmr_errno == 0) { in nfslockdans()
965 msgreq->lmr_msg.lm_fl.l_type = F_WRLCK; in nfslockdans()
967 msgreq->lmr_msg.lm_fl.l_type = F_RDLCK; in nfslockdans()
969 msgreq->lmr_msg.lm_fl.l_pid = ansp->la_pid; in nfslockdans()
970 msgreq->lmr_msg.lm_fl.l_start = ansp->la_start; in nfslockdans()
971 msgreq->lmr_msg.lm_fl.l_len = ansp->la_len; in nfslockdans()
973 msgreq->lmr_msg.lm_fl.l_type = F_UNLCK; in nfslockdans()
977 msgreq->lmr_msg.lm_flags |= LOCKD_MSG_DENIED_GRACE; in nfslockdans()
980 msgreq->lmr_answered = 1; in nfslockdans()
982 wakeup(msgreq); in nfslockdans()