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()
632 if (msgreq->lmr_errno == EINPROGRESS) { in nfs3_lockd_request()
645 nfs_lockdmsg_dequeue(msgreq); in nfs3_lockd_request()
647 nfs_lockdmsg_enqueue(msgreq); in nfs3_lockd_request()
648 msgreq->lmr_saved_errno = msgreq->lmr_errno; in nfs3_lockd_request()
649 msgreq->lmr_errno = 0; in nfs3_lockd_request()
650 msgreq->lmr_answered = 0; in nfs3_lockd_request()
674 if (msgreq->lmr_answered && (msg->lm_flags & LOCKD_MSG_DENIED_GRACE)) { in nfs3_lockd_request()
681 msgreq->lmr_saved_errno = msgreq->lmr_errno = error = NFSERR_GRACE; in nfs3_lockd_request()
684 if (msgreq->lmr_errno == EINPROGRESS) { in nfs3_lockd_request()
688 msgreq->lmr_answered = 0; in nfs3_lockd_request()
693 (msgreq->lmr_saved_errno == EINPROGRESS)) { in nfs3_lockd_request()
713 error = msgreq->lmr_saved_errno; in nfs3_lockd_request()
715 error = msgreq->lmr_errno; in nfs3_lockd_request()
726 nfs_lockdmsg_dequeue(msgreq); in nfs3_lockd_request()
752 nfs_lockdmsg_dequeue(msgreq); in nfs3_lockd_request()
775 LOCKD_MSG_REQUEST msgreq; in nfs3_setlock_rpc() local
792 bzero(&msgreq, sizeof(msgreq)); in nfs3_setlock_rpc()
793 msg = &msgreq.lmr_msg; in nfs3_setlock_rpc()
811 error = nfs3_lockd_request(np, 0, &msgreq, flags, thd); in nfs3_setlock_rpc()
832 LOCKD_MSG_REQUEST msgreq; in nfs3_unlock_rpc() local
841 bzero(&msgreq, sizeof(msgreq)); in nfs3_unlock_rpc()
842 msg = &msgreq.lmr_msg; in nfs3_unlock_rpc()
854 return nfs3_lockd_request(np, F_UNLCK, &msgreq, flags, thd); in nfs3_unlock_rpc()
871 LOCKD_MSG_REQUEST msgreq; in nfs3_getlock_rpc() local
880 bzero(&msgreq, sizeof(msgreq)); in nfs3_getlock_rpc()
881 msg = &msgreq.lmr_msg; in nfs3_getlock_rpc()
894 error = nfs3_lockd_request(np, 0, &msgreq, 0, vfs_context_thread(ctx)); in nfs3_getlock_rpc()
896 if (!error && (msg->lm_flags & LOCKD_MSG_TEST) && !msgreq.lmr_errno) { in nfs3_getlock_rpc()
918 LOCKD_MSG_REQUEST *msgreq; in nfslockdans() local
935 msgreq = nfs_lockdmsg_find_by_xid(ansp->la_xid); in nfslockdans()
943 if (!msgreq || nfs_lockdmsg_compare_to_answer(msgreq, ansp)) { in nfslockdans()
944 msgreq = nfs_lockdmsg_find_by_answer(ansp); in nfslockdans()
950 if (msgreq && (msgreq->lmr_msg.lm_flags & LOCKD_MSG_CANCEL)) { in nfslockdans()
951 msgreq = NULL; in nfslockdans()
954 if (!msgreq) { in nfslockdans()
959 msgreq->lmr_errno = ansp->la_errno; in nfslockdans()
960 if ((msgreq->lmr_msg.lm_flags & LOCKD_MSG_TEST) && msgreq->lmr_errno == 0) { in nfslockdans()
963 msgreq->lmr_msg.lm_fl.l_type = F_WRLCK; in nfslockdans()
965 msgreq->lmr_msg.lm_fl.l_type = F_RDLCK; in nfslockdans()
967 msgreq->lmr_msg.lm_fl.l_pid = ansp->la_pid; in nfslockdans()
968 msgreq->lmr_msg.lm_fl.l_start = ansp->la_start; in nfslockdans()
969 msgreq->lmr_msg.lm_fl.l_len = ansp->la_len; in nfslockdans()
971 msgreq->lmr_msg.lm_fl.l_type = F_UNLCK; in nfslockdans()
975 msgreq->lmr_msg.lm_flags |= LOCKD_MSG_DENIED_GRACE; in nfslockdans()
978 msgreq->lmr_answered = 1; in nfslockdans()
980 wakeup(msgreq); in nfslockdans()