Lines Matching defs:msgreq

201 nfs_lockdmsg_enqueue(LOCKD_MSG_REQUEST *msgreq)
206 if (!mr || (msgreq->lmr_msg.lm_xid > mr->lmr_msg.lm_xid)) {
208 TAILQ_INSERT_TAIL(&nfs_pendlockq, msgreq, lmr_next);
212 while (mr && (msgreq->lmr_msg.lm_xid > mr->lmr_msg.lm_xid)) {
216 TAILQ_INSERT_AFTER(&nfs_pendlockq, mr, msgreq, lmr_next);
218 TAILQ_INSERT_HEAD(&nfs_pendlockq, msgreq, lmr_next);
227 nfs_lockdmsg_dequeue(LOCKD_MSG_REQUEST *msgreq)
229 TAILQ_REMOVE(&nfs_pendlockq, msgreq, lmr_next);
271 nfs_lockdmsg_compare_to_answer(LOCKD_MSG_REQUEST *msgreq, struct lockd_ans *ansp)
275 if (msgreq->lmr_msg.lm_fl.l_pid != ansp->la_pid)
277 if (msgreq->lmr_msg.lm_fl.l_start != ansp->la_start)
279 if (msgreq->lmr_msg.lm_fl.l_len != ansp->la_len)
281 if (msgreq->lmr_msg.lm_fh_len != ansp->la_fh_len)
283 if (bcmp(msgreq->lmr_msg.lm_fh, ansp->la_fh, ansp->la_fh_len))
413 LOCKD_MSG_REQUEST *msgreq,
417 LOCKD_MSG *msg = &msgreq->lmr_msg;
449 nfs_lockdmsg_enqueue(msgreq);
487 if (!msgreq->lmr_answered) {
488 error = msleep(msgreq, nfs_lock_mutex, slpflag | PUSER, "lockd", &ts);
491 if (msgreq->lmr_answered) {
500 if ((msgreq->lmr_errno == ENOTSUP) && nmp &&
586 if ((msgreq->lmr_errno == EINPROGRESS) &&
590 nfs_lockdmsg_dequeue(msgreq);
592 nfs_lockdmsg_enqueue(msgreq);
593 msgreq->lmr_saved_errno = error;
594 msgreq->lmr_errno = 0;
595 msgreq->lmr_answered = 0;
606 if ((msgreq->lmr_errno != EINPROGRESS) &&
617 if (msgreq->lmr_errno == EINPROGRESS) {
630 nfs_lockdmsg_dequeue(msgreq);
632 nfs_lockdmsg_enqueue(msgreq);
633 msgreq->lmr_saved_errno = msgreq->lmr_errno;
634 msgreq->lmr_errno = 0;
635 msgreq->lmr_answered = 0;
657 if (msgreq->lmr_answered && (msg->lm_flags & LOCKD_MSG_DENIED_GRACE)) {
664 msgreq->lmr_saved_errno = msgreq->lmr_errno = error = NFSERR_GRACE;
667 if (msgreq->lmr_errno == EINPROGRESS) {
671 msgreq->lmr_answered = 0;
676 (msgreq->lmr_saved_errno == EINPROGRESS)) {
684 nfs_lockdmsg_dequeue(msgreq);
696 error = msgreq->lmr_saved_errno;
698 error = msgreq->lmr_errno;
709 nfs_lockdmsg_dequeue(msgreq);
734 nfs_lockdmsg_dequeue(msgreq);
757 LOCKD_MSG_REQUEST msgreq;
772 bzero(&msgreq, sizeof(msgreq));
773 msg = &msgreq.lmr_msg;
789 error = nfs3_lockd_request(np, 0, &msgreq, flags, thd);
810 LOCKD_MSG_REQUEST msgreq;
818 bzero(&msgreq, sizeof(msgreq));
819 msg = &msgreq.lmr_msg;
831 return (nfs3_lockd_request(np, F_UNLCK, &msgreq, flags, thd));
848 LOCKD_MSG_REQUEST msgreq;
856 bzero(&msgreq, sizeof(msgreq));
857 msg = &msgreq.lmr_msg;
870 error = nfs3_lockd_request(np, 0, &msgreq, 0, vfs_context_thread(ctx));
872 if (!error && (msg->lm_flags & LOCKD_MSG_TEST) && !msgreq.lmr_errno) {
893 LOCKD_MSG_REQUEST *msgreq;
908 msgreq = nfs_lockdmsg_find_by_xid(ansp->la_xid);
916 if (!msgreq || nfs_lockdmsg_compare_to_answer(msgreq, ansp))
917 msgreq = nfs_lockdmsg_find_by_answer(ansp);
922 if (msgreq && (msgreq->lmr_msg.lm_flags & LOCKD_MSG_CANCEL))
923 msgreq = NULL;
925 if (!msgreq) {
930 msgreq->lmr_errno = ansp->la_errno;
931 if ((msgreq->lmr_msg.lm_flags & LOCKD_MSG_TEST) && msgreq->lmr_errno == 0) {
934 msgreq->lmr_msg.lm_fl.l_type = F_WRLCK;
936 msgreq->lmr_msg.lm_fl.l_type = F_RDLCK;
937 msgreq->lmr_msg.lm_fl.l_pid = ansp->la_pid;
938 msgreq->lmr_msg.lm_fl.l_start = ansp->la_start;
939 msgreq->lmr_msg.lm_fl.l_len = ansp->la_len;
941 msgreq->lmr_msg.lm_fl.l_type = F_UNLCK;
945 msgreq->lmr_msg.lm_flags |= LOCKD_MSG_DENIED_GRACE;
947 msgreq->lmr_answered = 1;
949 wakeup(msgreq);