Lines Matching refs:msgreq

194 nfs_lockdmsg_enqueue(LOCKD_MSG_REQUEST *msgreq)
199 if (!mr || (msgreq->lmr_msg.lm_xid > mr->lmr_msg.lm_xid)) {
201 TAILQ_INSERT_TAIL(&nfs_pendlockq, msgreq, lmr_next);
205 while (mr && (msgreq->lmr_msg.lm_xid > mr->lmr_msg.lm_xid)) {
209 TAILQ_INSERT_AFTER(&nfs_pendlockq, mr, msgreq, lmr_next);
211 TAILQ_INSERT_HEAD(&nfs_pendlockq, msgreq, lmr_next);
220 nfs_lockdmsg_dequeue(LOCKD_MSG_REQUEST *msgreq)
222 TAILQ_REMOVE(&nfs_pendlockq, msgreq, lmr_next);
264 nfs_lockdmsg_compare_to_answer(LOCKD_MSG_REQUEST *msgreq, struct lockd_ans *ansp)
268 if (msgreq->lmr_msg.lm_fl.l_pid != ansp->la_pid)
270 if (msgreq->lmr_msg.lm_fl.l_start != ansp->la_start)
272 if (msgreq->lmr_msg.lm_fl.l_len != ansp->la_len)
274 if (msgreq->lmr_msg.lm_fh_len != ansp->la_fh_len)
276 if (bcmp(msgreq->lmr_msg.lm_fh, ansp->la_fh, ansp->la_fh_len))
406 LOCKD_MSG_REQUEST *msgreq,
410 LOCKD_MSG *msg = &msgreq->lmr_msg;
442 nfs_lockdmsg_enqueue(msgreq);
480 if (!msgreq->lmr_answered) {
481 error = msleep(msgreq, nfs_lock_mutex, slpflag | PUSER, "lockd", &ts);
484 if (msgreq->lmr_answered) {
493 if ((msgreq->lmr_errno == ENOTSUP) && nmp &&
579 if ((msgreq->lmr_errno == EINPROGRESS) &&
583 nfs_lockdmsg_dequeue(msgreq);
585 nfs_lockdmsg_enqueue(msgreq);
586 msgreq->lmr_saved_errno = error;
587 msgreq->lmr_errno = 0;
588 msgreq->lmr_answered = 0;
599 if ((msgreq->lmr_errno != EINPROGRESS) &&
610 if (msgreq->lmr_errno == EINPROGRESS) {
623 nfs_lockdmsg_dequeue(msgreq);
625 nfs_lockdmsg_enqueue(msgreq);
626 msgreq->lmr_saved_errno = msgreq->lmr_errno;
627 msgreq->lmr_errno = 0;
628 msgreq->lmr_answered = 0;
650 if (msgreq->lmr_answered && (msg->lm_flags & LOCKD_MSG_DENIED_GRACE)) {
657 msgreq->lmr_saved_errno = msgreq->lmr_errno = error = NFSERR_GRACE;
660 if (msgreq->lmr_errno == EINPROGRESS) {
664 msgreq->lmr_answered = 0;
669 (msgreq->lmr_saved_errno == EINPROGRESS)) {
677 nfs_lockdmsg_dequeue(msgreq);
689 error = msgreq->lmr_saved_errno;
691 error = msgreq->lmr_errno;
702 nfs_lockdmsg_dequeue(msgreq);
727 nfs_lockdmsg_dequeue(msgreq);
750 LOCKD_MSG_REQUEST msgreq;
765 bzero(&msgreq, sizeof(msgreq));
766 msg = &msgreq.lmr_msg;
782 error = nfs3_lockd_request(np, 0, &msgreq, flags, thd);
803 LOCKD_MSG_REQUEST msgreq;
811 bzero(&msgreq, sizeof(msgreq));
812 msg = &msgreq.lmr_msg;
824 return (nfs3_lockd_request(np, F_UNLCK, &msgreq, flags, thd));
841 LOCKD_MSG_REQUEST msgreq;
849 bzero(&msgreq, sizeof(msgreq));
850 msg = &msgreq.lmr_msg;
863 error = nfs3_lockd_request(np, 0, &msgreq, 0, vfs_context_thread(ctx));
865 if (!error && (msg->lm_flags & LOCKD_MSG_TEST) && !msgreq.lmr_errno) {
886 LOCKD_MSG_REQUEST *msgreq;
901 msgreq = nfs_lockdmsg_find_by_xid(ansp->la_xid);
909 if (!msgreq || nfs_lockdmsg_compare_to_answer(msgreq, ansp))
910 msgreq = nfs_lockdmsg_find_by_answer(ansp);
915 if (msgreq && (msgreq->lmr_msg.lm_flags & LOCKD_MSG_CANCEL))
916 msgreq = NULL;
918 if (!msgreq) {
923 msgreq->lmr_errno = ansp->la_errno;
924 if ((msgreq->lmr_msg.lm_flags & LOCKD_MSG_TEST) && msgreq->lmr_errno == 0) {
927 msgreq->lmr_msg.lm_fl.l_type = F_WRLCK;
929 msgreq->lmr_msg.lm_fl.l_type = F_RDLCK;
930 msgreq->lmr_msg.lm_fl.l_pid = ansp->la_pid;
931 msgreq->lmr_msg.lm_fl.l_start = ansp->la_start;
932 msgreq->lmr_msg.lm_fl.l_len = ansp->la_len;
934 msgreq->lmr_msg.lm_fl.l_type = F_UNLCK;
938 msgreq->lmr_msg.lm_flags |= LOCKD_MSG_DENIED_GRACE;
940 msgreq->lmr_answered = 1;
942 wakeup(msgreq);