Home | History | Annotate | Download | only in client

Lines Matching defs:lyp

1894 	struct nfscllayout *lyp, *nlyp;
1916 TAILQ_FOREACH_SAFE(lyp, &clp->nfsc_layout, nfsly_list, nlyp)
1917 nfscl_freelayout(lyp);
2454 struct nfscllayout *lyp, *nlyp;
2631 TAILQ_FOREACH_SAFE(lyp, &clp->nfsc_layout, nfsly_list, nlyp) {
2632 if ((lyp->nfsly_flags & NFSLY_RECALL) != 0) {
2636 if (lyp->nfsly_lock.nfslock_usecnt > 0 ||
2637 (lyp->nfsly_lock.nfslock_lock &
2639 lyp->nfsly_lock.nfslock_lock |=
2641 (void)nfsmsleep(&lyp->nfsly_lock,
2647 TAILQ_REMOVE(&clp->nfsc_layout, lyp,
2649 LIST_REMOVE(lyp, nfsly_hash);
2650 TAILQ_INSERT_HEAD(&rlh, lyp, nfsly_list);
2654 (lyp->nfsly_flags & NFSLY_WRITTEN) != 0) {
2655 lyp->nfsly_flags &= ~NFSLY_WRITTEN;
2658 nfscl_dolayoutcommit(clp->nfsc_nmp, lyp,
2667 lyp = TAILQ_LAST(&clp->nfsc_layout, nfscllayouthead);
2668 while (lyp != NULL) {
2669 nlyp = TAILQ_PREV(lyp, nfscllayouthead, nfsly_list);
2670 if (lyp->nfsly_timestamp < NFSD_MONOSEC &&
2671 (lyp->nfsly_flags & NFSLY_RECALL) == 0 &&
2672 lyp->nfsly_lock.nfslock_usecnt == 0 &&
2673 lyp->nfsly_lock.nfslock_lock == 0) {
2681 lyp, NFSLAYOUTIOMODE_ANY, 0, UINT64_MAX,
2682 lyp->nfsly_stateid.seqid, recallp);
2684 lyp = nlyp;
2701 TAILQ_FOREACH_SAFE(lyp, &rlh, nfsly_list, nlyp) {
2702 TAILQ_REMOVE(&rlh, lyp, nfsly_list);
2704 nfscl_layoutreturn(clp->nfsc_nmp, lyp, cred, p);
2705 nfscl_freelayout(lyp);
3163 struct nfscllayout *lyp;
3358 lyp = nfscl_findlayout(clp,
3362 lyp);
3363 if (lyp != NULL &&
3364 (lyp->nfsly_flags &
3367 lyp->nfsly_stateid.other,
3372 lyp, iomode, off,
3396 TAILQ_FOREACH(lyp, &clp->nfsc_layout,
3398 if (lyp->nfsly_filesid[0] ==
3400 lyp->nfsly_filesid[1] ==
3405 lyp, iomode, 0,
3407 lyp->nfsly_stateid.seqid,
3425 TAILQ_FOREACH(lyp, &clp->nfsc_layout,
3428 recalltype, lyp, iomode, 0,
3430 lyp->nfsly_stateid.seqid,
4692 struct nfscllayout *lyp, *tlyp;
4701 lyp = *lypp;
4702 if (lyp == NULL) {
4712 nfsv4_unlock(&lyp->nfsly_lock, 0);
4718 if (lyp == NULL) {
4720 * Although no lyp was passed in, another thread might have
4724 lyp = nfscl_findlayout(clp, fhp, fhlen);
4725 if (lyp == NULL) {
4726 lyp = tlyp;
4728 lyp->nfsly_stateid.seqid = stateidp->seqid;
4729 lyp->nfsly_stateid.other[0] = stateidp->other[0];
4730 lyp->nfsly_stateid.other[1] = stateidp->other[1];
4731 lyp->nfsly_stateid.other[2] = stateidp->other[2];
4732 lyp->nfsly_lastbyte = 0;
4733 LIST_INIT(&lyp->nfsly_flayread);
4734 LIST_INIT(&lyp->nfsly_flayrw);
4735 lyp->nfsly_recall);
4736 lyp->nfsly_filesid[0] = np->n_vattr.na_filesid[0];
4737 lyp->nfsly_filesid[1] = np->n_vattr.na_filesid[1];
4738 lyp->nfsly_clp = clp;
4739 lyp->nfsly_flags = (retonclose != 0) ?
4741 lyp->nfsly_fhlen = fhlen;
4742 NFSBCOPY(fhp, lyp->nfsly_fh, fhlen);
4743 TAILQ_INSERT_HEAD(&clp->nfsc_layout, lyp, nfsly_list);
4744 LIST_INSERT_HEAD(NFSCLLAYOUTHASH(clp, fhp, fhlen), lyp,
4746 lyp->nfsly_timestamp = NFSD_MONOSEC + 120;
4750 lyp->nfsly_flags |= NFSLY_RETONCLOSE;
4751 TAILQ_REMOVE(&clp->nfsc_layout, lyp, nfsly_list);
4752 TAILQ_INSERT_HEAD(&clp->nfsc_layout, lyp, nfsly_list);
4753 lyp->nfsly_timestamp = NFSD_MONOSEC + 120;
4755 nfsv4_getref(&lyp->nfsly_lock, NULL, NFSCLSTATEMUTEXPTR, mp);
4762 *lypp = lyp;
4764 lyp->nfsly_stateid.seqid = stateidp->seqid;
4770 nfscl_mergeflayouts(&lyp->nfsly_flayread, fhlp);
4772 nfscl_mergeflayouts(&lyp->nfsly_flayrw, fhlp);
4775 nfsv4_unlock(&lyp->nfsly_lock, 1);
4792 struct nfscllayout *lyp;
4800 lyp = nfscl_findlayout(clp, fhp, fhlen);
4801 if (lyp != NULL) {
4802 if ((lyp->nfsly_flags & NFSLY_RECALL) == 0) {
4803 TAILQ_REMOVE(&clp->nfsc_layout, lyp, nfsly_list);
4804 TAILQ_INSERT_HEAD(&clp->nfsc_layout, lyp, nfsly_list);
4805 lyp->nfsly_timestamp = NFSD_MONOSEC + 120;
4806 error = nfscl_findlayoutforio(lyp, off,
4809 nfsv4_getref(&lyp->nfsly_lock, NULL,
4813 igotlock = nfsv4_lock(&lyp->nfsly_lock,
4820 lyp = NULL;
4824 lyp = NULL;
4829 return (lyp);
4839 struct nfscllayout *lyp;
4842 lyp = nfscl_findlayout(clp, fhp, fhlen);
4843 if (lyp != NULL && (lyp->nfsly_flags & NFSLY_RETONCLOSE) != 0) {
4847 if (lyp->nfsly_lock.nfslock_usecnt != 0 ||
4848 lyp->nfsly_lock.nfslock_lock != 0) {
4849 lyp->nfsly_lock.nfslock_lock |= NFSV4LOCK_WANTED;
4850 (void)mtx_sleep(&lyp->nfsly_lock,
4854 nfscl_freelayout(lyp);
4862 nfscl_rellayout(struct nfscllayout *lyp, int exclocked)
4867 nfsv4_unlock(&lyp->nfsly_lock, 0);
4869 nfsv4_relref(&lyp->nfsly_lock);
4921 struct nfscllayout *lyp;
4923 LIST_FOREACH(lyp, NFSCLLAYOUTHASH(clp, fhp, fhlen), nfsly_hash)
4924 if (lyp->nfsly_fhlen == fhlen &&
4925 !NFSBCMP(lyp->nfsly_fh, fhp, fhlen))
4927 return (lyp);
5064 nfscl_layoutrecall(int recalltype, struct nfscllayout *lyp, uint32_t iomode,
5083 LIST_FOREACH(rp, &lyp->nfsly_recall, nfsrecly_list) {
5097 LIST_INSERT_HEAD(&lyp->nfsly_recall, recallp,
5102 lyp->nfsly_flags |= NFSLY_RECALL;
5131 nfscl_layoutreturn(struct nfsmount *nmp, struct nfscllayout *lyp,
5137 NFSBCOPY(lyp->nfsly_stateid.other, stateid.other, NFSX_STATEIDOTHER);
5138 LIST_FOREACH(rp, &lyp->nfsly_recall, nfsrecly_list) {
5140 (void)nfsrpc_layoutreturn(nmp, lyp->nfsly_fh,
5141 lyp->nfsly_fhlen, 0, NFSLAYOUT_NFSV4_1_FILES,
5152 nfscl_dolayoutcommit(struct nfsmount *nmp, struct nfscllayout *lyp,
5159 LIST_FOREACH(flp, &lyp->nfsly_flayrw, nfsfl_list) {
5160 if (flp->nfsfl_off <= lyp->nfsly_lastbyte) {
5162 error = nfsrpc_layoutcommit(nmp, lyp->nfsly_fh,
5163 lyp->nfsly_fhlen, 0, flp->nfsfl_off, len,
5164 lyp->nfsly_lastbyte, &lyp->nfsly_stateid,
5185 struct nfscllayout *lyp;
5200 lyp = nfscl_findlayout(clp, np->n_fhp->nfh_fh, np->n_fhp->nfh_len);
5201 if (lyp == NULL) {
5205 nfsv4_getref(&lyp->nfsly_lock, NULL, NFSCLSTATEMUTEXPTR, mp);
5211 if ((lyp->nfsly_flags & NFSLY_WRITTEN) != 0) {
5212 lyp->nfsly_flags &= ~NFSLY_WRITTEN;
5215 nfscl_dolayoutcommit(clp->nfsc_nmp, lyp, NFSPROCCRED(p), p);
5219 nfsv4_relref(&lyp->nfsly_lock);