Lines Matching refs:nmp

90 	struct nfsmount *nmp = NFSTONMP(np);
91 int nfsvers = nmp->nm_vers;
114 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
186 struct nfsmount *nmp = mp ? VFSTONFS(mp) : NFSTONMP(np);
192 if (!nmp)
194 nfsvers = nmp->nm_vers;
195 acls = (nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_ACL);
221 nfsm_chain_add_bitmap_supported(error, &nmreq, bitmap, nmp, np);
250 struct nfsmount *nmp;
257 nmp = NFSTONMP(np);
258 if (!nmp)
275 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
320 struct nfsmount *nmp;
326 nmp = NFSTONMP(np);
327 if (!nmp)
329 nfsvers = nmp->nm_vers;
351 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
369 struct nfsmount *nmp;
375 nmp = NFSTONMP(np);
376 if (!nmp) {
380 nfsvers = nmp->nm_vers;
426 struct nfsmount *nmp;
433 nmp = NFSTONMP(np);
434 if (!nmp)
436 nfsvers = nmp->nm_vers;
466 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
485 struct nfsmount *nmp;
493 nmp = NFSTONMP(np);
494 if (!nmp) {
498 nfsvers = nmp->nm_vers;
505 nmp = NFSTONMP(np);
506 if (!nmp)
524 lck_mtx_lock(&nmp->nm_lock);
525 if (!(nmp->nm_state & NFSSTA_HASWRITEVERF)) {
526 nmp->nm_verf = wverf;
527 nmp->nm_state |= NFSSTA_HASWRITEVERF;
528 } else if (nmp->nm_verf != wverf) {
529 nmp->nm_verf = wverf;
531 lck_mtx_unlock(&nmp->nm_lock);
556 struct nfsmount *nmp;
562 nmp = NFSTONMP(dnp);
563 if (!nmp)
565 nfsvers = nmp->nm_vers;
582 nfsm_chain_add_name(error, &nmreq, name, namelen, nmp);
585 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, dnp);
613 tsleep(&nmp->nm_state, (PZERO-1), "nfsgrace", 2*hz);
631 struct nfsmount *nmp;
636 nmp = NFSTONMP(fdnp);
637 if (!nmp)
639 nfsvers = nmp->nm_vers;
663 nfsm_chain_add_name(error, &nmreq, fnameptr, fnamelen, nmp);
664 nfsm_chain_add_name(error, &nmreq, tnameptr, tnamelen, nmp);
667 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, tdnp);
672 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, fdnp);
718 struct nfsmount *nmp;
735 nmp = NFSTONMP(dnp);
736 if (!nmp)
738 nfsvers = nmp->nm_vers;
739 nmreaddirsize = nmp->nm_readdirsize;
740 nmrsize = nmp->nm_rsize;
741 bigcookies = nmp->nm_state & NFSSTA_BIGCOOKIES;
743 rdirplus = (NMFLAG(nmp, RDIRPLUS) || namedattr) ? 1 : 0;
858 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, dnp);
865 nfsm_chain_add_bitmap_supported(error, &nmreq, entry_attrs, nmp, dnp);
900 if (!bigcookies && (cookie >> 32) && (nmp == NFSTONMP(dnp))) {
902 lck_mtx_lock(&nmp->nm_lock);
903 nmp->nm_state |= NFSSTA_BIGCOOKIES;
904 lck_mtx_unlock(&nmp->nm_lock);
1080 struct nfsmount *nmp;
1083 nmp = NFSTONMP(dnp);
1084 if (!nmp)
1086 nfsvers = nmp->nm_vers;
1108 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, dnp);
1114 nfsm_chain_add_name(error, &nmreq, name, namelen, nmp);
1128 nfsm_chain_add_bitmap_supported(error, &nmreq, bitmap, nmp, NULL);
1154 struct nfsmount *nmp;
1157 nmp = NFSTONMP(dnp);
1158 nfsvers = nmp->nm_vers;
1194 if (!error && (op == NFS_OP_LOOKUP) && (nmp->nm_state & NFSSTA_NEEDSECINFO)) {
1200 error = nfs4_secinfo_rpc(nmp, &req->r_secinfo, vfs_context_ucred(ctx), sec.flavors, &sec.count);
1206 lck_mtx_lock(&nmp->nm_lock);
1208 nmp->nm_auth = sec.flavors[0];
1209 nmp->nm_state &= ~NFSSTA_NEEDSECINFO;
1210 lck_mtx_unlock(&nmp->nm_lock);
1224 struct nfsmount *nmp;
1231 nmp = NFSTONMP(np);
1232 FSDBG(521, np, offset, count, nmp ? nmp->nm_state : 0);
1233 if (!nmp)
1237 if (!(nmp->nm_state & NFSSTA_HASWRITEVERF))
1239 nfsvers = nmp->nm_vers;
1263 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
1282 lck_mtx_lock(&nmp->nm_lock);
1283 if (nmp->nm_verf != newwverf)
1284 nmp->nm_verf = newwverf;
1287 lck_mtx_unlock(&nmp->nm_lock);
1303 struct nfsmount *nmp = NFSTONMP(np);
1308 if (!nmp)
1310 nfsvers = nmp->nm_vers;
1336 nfsm_chain_add_bitmap_supported(error, &nmreq, bitmap, nmp, np);
1372 struct nfsmount *nmp;
1376 if (!(nmp = VTONMP(ap->a_vp)))
1378 acls = (nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_ACL);
1409 if (NMFLAG(nmp, ACLONLY) || !NFS_BITMAP_ISSET(nva.nva_bitmap, NFS_FATTR_MODE))
1477 struct nfsmount *nmp = NFSTONMP(np);
1487 if (!nmp)
1489 nfsvers = nmp->nm_vers;
1513 nfs_vattr_set_bitmap(nmp, bitmap, vap);
1548 nfsm_chain_add_fattr4(error, &nmreq, vap, nmp);
1551 nfsm_chain_add_bitmap_supported(error, &nmreq, getbitmap, nmp, np);
1599 if ((setattr_error == EINVAL) && VATTR_IS_ACTIVE(vap, va_acl) && VATTR_IS_ACTIVE(vap, va_mode) && !NMFLAG(nmp, ACLONLY)) {
1620 nfs_mount_state_wait_for_recovery(struct nfsmount *nmp)
1623 int error = 0, slpflag = NMFLAG(nmp, INTR) ? PCATCH : 0;
1625 lck_mtx_lock(&nmp->nm_lock);
1626 while (nmp->nm_state & NFSSTA_RECOVER) {
1627 if ((error = nfs_sigintr(nmp, NULL, current_thread(), 1)))
1629 nfs_mount_sock_thread_wake(nmp);
1630 msleep(&nmp->nm_state, &nmp->nm_lock, slpflag|(PZERO-1), "nfsrecoverwait", &ts);
1633 lck_mtx_unlock(&nmp->nm_lock);
1645 nfs_mount_state_in_use_start(struct nfsmount *nmp, thread_t thd)
1648 int error = 0, slpflag = (NMFLAG(nmp, INTR) && thd) ? PCATCH : 0;
1650 if (!nmp)
1652 lck_mtx_lock(&nmp->nm_lock);
1653 if (nmp->nm_state & (NFSSTA_FORCE|NFSSTA_DEAD)) {
1654 lck_mtx_unlock(&nmp->nm_lock);
1657 while (nmp->nm_state & NFSSTA_RECOVER) {
1658 if ((error = nfs_sigintr(nmp, NULL, thd, 1)))
1660 nfs_mount_sock_thread_wake(nmp);
1661 msleep(&nmp->nm_state, &nmp->nm_lock, slpflag|(PZERO-1), "nfsrecoverwait", &ts);
1665 nmp->nm_stateinuse++;
1666 lck_mtx_unlock(&nmp->nm_lock);
1677 nfs_mount_state_in_use_end(struct nfsmount *nmp, int error)
1681 if (!nmp)
1683 lck_mtx_lock(&nmp->nm_lock);
1686 error, vfs_statfs(nmp->nm_mountp)->f_mntfromname, nmp->nm_stategenid);
1687 nfs_need_recover(nmp, error);
1689 if (nmp->nm_stateinuse > 0)
1690 nmp->nm_stateinuse--;
1693 if (!nmp->nm_stateinuse && (nmp->nm_state & NFSSTA_RECOVER))
1694 wakeup(&nmp->nm_stateinuse);
1695 lck_mtx_unlock(&nmp->nm_lock);
1697 tsleep(&nmp->nm_state, (PZERO-1), "nfsgrace", 2*hz);
1727 nfs_mount_state_max_restarts(struct nfsmount *nmp)
1729 return (MAX(nmp->nm_fsattr.nfsa_lease, 60));
1757 struct nfsmount *nmp;
1761 nmp = NFSTONMP(np);
1762 if (!nmp)
1764 slpflag = (NMFLAG(nmp, INTR) && thd) ? PCATCH : 0;
1768 if ((error = nfs_sigintr(nmp, NULL, thd, 0)))
1805 nfs_open_owner_find(struct nfsmount *nmp, kauth_cred_t cred, int alloc)
1811 lck_mtx_lock(&nmp->nm_lock);
1812 TAILQ_FOREACH(noop, &nmp->nm_open_owners, noo_link) {
1818 lck_mtx_unlock(&nmp->nm_lock);
1824 newnoop->noo_mount = nmp;
1833 TAILQ_INSERT_HEAD(&nmp->nm_open_owners, newnoop, noo_link);
1836 lck_mtx_unlock(&nmp->nm_lock);
1900 struct nfsmount *nmp;
1904 nmp = noop->noo_mount;
1905 if (!nmp)
1907 slpflag = (NMFLAG(nmp, INTR) && thd) ? PCATCH : 0;
1911 if ((error = nfs_sigintr(nmp, NULL, thd, 0)))
2081 struct nfsmount *nmp;
2085 nmp = nofp->nof_owner->noo_mount;
2086 if (!nmp)
2088 slpflag = (NMFLAG(nmp, INTR) && thd) ? PCATCH : 0;
2092 if ((error = nfs_sigintr(nmp, NULL, thd, 0)))
2418 struct nfsmount *nmp = NFSTONMP(np);
2433 } else if (((noop = nfs_open_owner_find(nmp, cred, 0))) &&
2667 struct nfsmount *nmp;
2671 nmp = VTONMP(vp);
2672 if (!nmp)
2690 noop = nfs_open_owner_find(nmp, vfs_context_ucred(ctx), 1);
2695 error = nfs_mount_state_in_use_start(nmp, NULL);
2702 nfs_mount_state_in_use_end(nmp, 0);
2713 nfs_mount_state_in_use_end(nmp, 0);
2741 if (nmp->nm_vers < NFS_VER4) {
2827 if (nfs_mount_state_in_use_end(nmp, error)) {
2843 lck_mtx_lock(&nmp->nm_lock);
2844 nmp->nm_state &= ~NFSSTA_SQUISHY;
2845 nmp->nm_curdeadtimeout = nmp->nm_deadtimeout;
2846 if (nmp->nm_curdeadtimeout <= 0)
2847 nmp->nm_deadto_start = 0;
2848 nmp->nm_mappers++;
2849 lck_mtx_unlock(&nmp->nm_lock);
2868 struct nfsmount *nmp;
2874 nmp = VTONMP(vp);
2875 if (!nmp)
2885 lck_mtx_lock(&nmp->nm_lock);
2886 if (nmp->nm_mappers)
2887 nmp->nm_mappers--;
2890 lck_mtx_unlock(&nmp->nm_lock);
2900 error = nfs_mount_state_in_use_start(nmp, NULL);
2909 nfs_mount_state_in_use_end(nmp, 0);
2931 nfs_mount_state_in_use_end(nmp, error);
2935 nfs_mount_state_in_use_end(nmp, error);
3053 struct nfsmount *nmp;
3057 nmp = nlop->nlo_open_owner->noo_mount;
3058 if (!nmp)
3060 slpflag = (NMFLAG(nmp, INTR) && thd) ? PCATCH : 0;
3064 if ((error = nfs_sigintr(nmp, NULL, thd, 0)))
3210 struct nfsmount *nmp;
3217 nmp = NFSTONMP(np);
3218 if (!nmp)
3223 newlocker = (nlop->nlo_stategenid != nmp->nm_stategenid);
3267 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
3279 nfsm_chain_add_lock_owner4(error, &nmreq, nmp, nlop);
3306 nlop->nlo_stategenid = nmp->nm_stategenid;
3334 struct nfsmount *nmp;
3340 nmp = NFSTONMP(np);
3341 if (!nmp)
3363 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
3410 struct nfsmount *nmp;
3417 nmp = NFSTONMP(np);
3418 if (!nmp)
3437 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
3443 nfsm_chain_add_lock_owner4(error, &nmreq, nmp, nlop);
3497 struct nfsmount *nmp;
3501 nmp = NFSTONMP(np);
3502 if (!nmp)
3506 if ((error = nfs_mount_state_in_use_start(nmp, vfs_context_thread(ctx))))
3536 nfs_mount_state_in_use_end(nmp, 0);
3541 error = nmp->nm_funcs->nf_getlock_rpc(np, nlop, fl, start, end, ctx);
3543 if (nfs_mount_state_in_use_end(nmp, error))
3571 struct nfsmount *nmp;
3577 nmp = NFSTONMP(np);
3578 if (!nmp)
3580 slpflag = NMFLAG(nmp, INTR) ? PCATCH : 0;
3614 error = nfs_mount_state_in_use_start(nmp, vfs_context_thread(ctx));
3620 nfs_mount_state_in_use_end(nmp, 0);
3625 nfs_mount_state_in_use_end(nmp, 0);
3660 nfs_mount_state_in_use_end(nmp, 0);
3665 error = nfs_mount_state_in_use_start(nmp, vfs_context_thread(ctx));
3679 if (!error && (nmp->nm_state & NFSSTA_RECOVER)) {
3683 nfs_mount_state_in_use_end(nmp, 0);
3761 error = nmp->nm_funcs->nf_setlock_rpc(np, nofp, newnflp, 0, 0, vfs_context_thread(ctx), vfs_context_ucred(ctx));
3773 nfs_mount_state_in_use_end(nmp, 0);
3778 error2 = nfs_mount_state_in_use_start(nmp, vfs_context_thread(ctx));
3793 if ((nmp->nm_vers >= NFS_VER4) || (error == NFSERR_GRACE)) {
3802 if (!error && (nmp->nm_state & NFSSTA_RECOVER)) {
3806 nfs_mount_state_in_use_end(nmp, 0);
3822 nfs_mount_state_in_use_end(nmp, error);
3844 nfs_mount_state_in_use_end(nmp, error);
3965 nfs_mount_state_in_use_end(nmp, error);
3985 struct nfsmount *nmp;
3989 nmp = NFSTONMP(np);
3990 if (!nmp)
3994 if ((error = nfs_mount_state_in_use_start(nmp, NULL)))
3997 nfs_mount_state_in_use_end(nmp, 0);
4004 nfs_mount_state_in_use_end(nmp, error);
4032 nfs_mount_state_in_use_end(nmp, 0);
4072 error = nmp->nm_funcs->nf_unlock_rpc(np, nlop, type, s, nflp->nfl_start-1, 0,
4076 nfs_mount_state_in_use_end(nmp, error);
4088 error = nmp->nm_funcs->nf_unlock_rpc(np, nlop, type, s, end, 0,
4092 nfs_mount_state_in_use_end(nmp, error);
4116 error = nmp->nm_funcs->nf_unlock_rpc(np, nlop, nflp->nfl_type, nflp->nfl_start, nflp->nfl_end, 0,
4120 nfs_mount_state_in_use_end(nmp, error);
4138 error = nmp->nm_funcs->nf_unlock_rpc(np, nlop, nflp->nfl_type, start, end, 0,
4142 nfs_mount_state_in_use_end(nmp, error);
4163 error = nmp->nm_funcs->nf_unlock_rpc(np, nlop, nflp->nfl_type, start, nflp->nfl_end, 0,
4167 nfs_mount_state_in_use_end(nmp, error);
4180 error = nmp->nm_funcs->nf_unlock_rpc(np, nlop, nflp->nfl_type, nflp->nfl_start, end, 0,
4184 nfs_mount_state_in_use_end(nmp, error);
4206 nfs_mount_state_in_use_end(nmp, 0);
4234 struct nfsmount *nmp;
4244 nmp = VTONMP(ap->a_vp);
4245 if (!nmp)
4247 lck_mtx_lock(&nmp->nm_lock);
4248 if ((nmp->nm_vers <= NFS_VER3) && (nmp->nm_lockmode == NFS_LOCK_MODE_DISABLED)) {
4249 lck_mtx_unlock(&nmp->nm_lock);
4252 lck_mtx_unlock(&nmp->nm_lock);
4310 if ((nmp->nm_vers == NFS_VER2) && ((start > INT32_MAX) || (fl->l_len && (end > INT32_MAX))))
4330 noop = nfs_open_owner_find(nmp, vfs_context_ucred(ctx), 0);
4399 struct nfsmount *nmp = NFSTONMP(nofp->nof_np);
4409 int error = 0, done = 0, slpflag = NMFLAG(nmp, INTR) ? PCATCH : 0;
4414 if ((error = nfs_sigintr(nmp, NULL, thd, 0)))
4477 if ((error = nfs_mount_state_in_use_start(nmp, thd)))
4487 if (nfs_mount_state_in_use_end(nmp, error)) {
4557 struct nfsmount *nmp,
4582 nfsm_chain_add_fh(error, &nmreq, nmp->nm_vers, fhp, fhlen);
4589 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, dnp);
4631 struct nfsmount *nmp;
4655 nmp = VTONMP(dvp);
4656 if (!nmp)
4658 nfsvers = nmp->nm_vers;
4659 namedattrs = (nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR);
4708 nfsm_chain_add_64(error, &nmreq, nmp->nm_clientid);
4722 nfsm_chain_add_fattr4(error, &nmreq, vap, nmp);
4726 nfsm_chain_add_name(error, &nmreq, cnp->cn_nameptr, cnp->cn_namelen, nmp);
4731 nfsm_chain_add_bitmap_supported(error, &nmreq, bitmap, nmp, np);
4736 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, dnp);
4851 error = nfs4_open_confirm_rpc(nmp, dnp, fh.fh_data, fh.fh_len, noop, sid, thd, cred, &nvattr, &xid);
4895 lck_mtx_lock(&nmp->nm_lock);
4897 TAILQ_INSERT_TAIL(&nmp->nm_delegations, np, n_dlink);
4898 lck_mtx_unlock(&nmp->nm_lock);
4912 lck_mtx_lock(&nmp->nm_lock);
4914 TAILQ_INSERT_TAIL(&nmp->nm_delegations, np, n_dlink);
4915 lck_mtx_unlock(&nmp->nm_lock);
4925 nfs4_delegreturn_rpc(nmp, fh.fh_data, fh.fh_len, &dstateid, 0, thd, cred);
4969 struct nfsmount *nmp;
4992 nmp = NFSTONMP(np);
4993 if (!nmp)
4995 nfsvers = nmp->nm_vers;
5067 nfsm_chain_add_64(error, &nmreq, nmp->nm_clientid); // open_owner4.clientid
5075 nfsm_chain_add_name(error, &nmreq, filename, namelen, nmp);
5080 nfsm_chain_add_bitmap_supported(error, &nmreq, bitmap, nmp, np);
5085 error = nfs_request2(np, nmp->nm_mountp, &nmreq, NFSPROC4_COMPOUND, current_thread(),
5158 lck_mtx_lock(&nmp->nm_lock);
5160 TAILQ_INSERT_TAIL(&nmp->nm_delegations, np, n_dlink);
5161 lck_mtx_unlock(&nmp->nm_lock);
5227 struct nfsmount *nmp;
5244 nmp = NFSTONMP(np);
5245 if (!nmp)
5247 nfsvers = nmp->nm_vers;
5273 nfsm_chain_add_64(error, &nmreq, nmp->nm_clientid); // open_owner4.clientid
5289 nfsm_chain_add_bitmap_supported(error, &nmreq, bitmap, nmp, np);
5294 error = nfs_request2(np, nmp->nm_mountp, &nmreq, NFSPROC4_COMPOUND, current_thread(),
5369 lck_mtx_lock(&nmp->nm_lock);
5371 TAILQ_INSERT_TAIL(&nmp->nm_delegations, np, n_dlink);
5372 lck_mtx_unlock(&nmp->nm_lock);
5425 struct nfsmount *nmp;
5431 nmp = NFSTONMP(np);
5432 if (!nmp)
5434 nfsvers = nmp->nm_vers;
5458 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
5495 struct nfsmount *nmp;
5501 nmp = NFSTONMP(np);
5502 if (!nmp)
5504 nfsvers = nmp->nm_vers;
5526 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
5562 struct nfsmount *nmp;
5667 if ((nmp = NFSTONMP(nofp->nof_np))) {
5669 lck_mtx_lock(&nmp->nm_lock);
5670 nfs_need_recover(nmp, NFSERR_EXPIRED);
5671 lck_mtx_unlock(&nmp->nm_lock);
5687 if (!error && ((nmp = NFSTONMP(nofp->nof_np)))) {
5699 error = nmp->nm_funcs->nf_setlock_rpc(nofp->nof_np, nofp, nflp, 0, flags, current_thread(), noop->noo_cred);
5722 if ((error == ETIMEDOUT) && ((nmp = NFSTONMP(nofp->nof_np))))
5723 nfs_need_reconnect(nmp);
5734 if ((nmp = NFSTONMP(nofp->nof_np))) {
5736 lck_mtx_lock(&nmp->nm_lock);
5737 nfs_need_recover(nmp, NFSERR_EXPIRED);
5738 lck_mtx_unlock(&nmp->nm_lock);
5753 struct nfsmount *nmp = NFSTONMP(np);
5763 if (!force && nmp && !(nflp->nfl_flags & NFS_FILE_LOCK_DELEGATED))
5764 nmp->nm_funcs->nf_unlock_rpc(np, nflp->nfl_owner, F_WRLCK, nflp->nfl_start, nflp->nfl_end, R_RECOVER,
5795 if (!force && nmp && (nmp->nm_vers >= NFS_VER4))
5810 struct nfsmount *nmp;
5827 if ((nmp = NFSTONMP(np))) {
5828 lck_mtx_lock(&nmp->nm_lock);
5829 nmp->nm_state |= NFSSTA_REVOKE;
5830 nfs_mount_sock_thread_wake(nmp);
5831 lck_mtx_unlock(&nmp->nm_lock);
5874 struct nfsmount *nmp;
5876 nmp = NFSTONMP(np);
5877 if (!nmp)
5884 lck_mtx_lock(&nmp->nm_lock);
5886 TAILQ_INSERT_TAIL(&nmp->nm_dreturnq, np, n_dreturn);
5887 nfs_mount_sock_thread_wake(nmp);
5888 lck_mtx_unlock(&nmp->nm_lock);
5897 struct nfsmount *nmp;
5902 nmp = NFSTONMP(np);
5903 if (!nmp)
5930 lck_mtx_lock(&nmp->nm_lock);
5932 TAILQ_REMOVE(&nmp->nm_delegations, np, n_dlink);
5935 lck_mtx_unlock(&nmp->nm_lock);
5941 lck_mtx_lock(&nmp->nm_lock);
5943 TAILQ_REMOVE(&nmp->nm_dreturnq, np, n_dreturn);
5946 lck_mtx_unlock(&nmp->nm_lock);
5954 nfs_need_reconnect(nmp);
5957 lck_mtx_lock(&nmp->nm_lock);
5958 nfs_need_recover(nmp, nfs_mount_state_error_delegation_lost(error) ? NFSERR_EXPIRED : 0);
5959 lck_mtx_unlock(&nmp->nm_lock);
5972 nfs4_delegreturn_rpc(struct nfsmount *nmp, u_char *fhp, int fhlen, struct nfs_stateid *sid, int flags, thread_t thd, kauth_cred_t cred)
5989 nfsm_chain_add_fh(error, &nmreq, nmp->nm_vers, fhp, fhlen);
5996 error = nfs_request2(NULL, nmp->nm_mountp, &nmreq, NFSPROC4_COMPOUND, thd, cred, &si, flags, &nmrep, &xid, &status);
6028 struct nfsmount *nmp;
6037 nmp = NFSTONMP(np);
6038 if (!nmp)
6043 noop = nfs_open_owner_find(nmp, vfs_context_ucred(ctx), 1);
6064 error = nfs_mount_state_in_use_start(nmp, vfs_context_thread(ctx));
6071 nfs_mount_state_in_use_end(nmp, 0);
6079 if (nmp->nm_vers < NFS_VER4) {
6090 if (nfs_mount_state_in_use_end(nmp, error)) {
6122 struct nfsmount *nmp;
6128 nmp = VTONMP(dvp);
6129 if (!nmp)
6135 noop = nfs_open_owner_find(nmp, vfs_context_ucred(ctx), 1);
6140 error = nfs_mount_state_in_use_start(nmp, vfs_context_thread(ctx));
6154 nfs_mount_state_in_use_end(nmp, 0);
6259 if (nfs_mount_state_in_use_end(nmp, error)) {
6282 struct nfsmount *nmp;
6298 nmp = NFSTONMP(dnp);
6299 if (!nmp)
6301 nfsvers = nmp->nm_vers;
6302 namedattrs = (nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR);
6355 nfsm_chain_add_name(error, &nmreq, link, strlen(link), nmp);
6360 nfsm_chain_add_name(error, &nmreq, cnp->cn_nameptr, cnp->cn_namelen, nmp);
6361 nfsm_chain_add_fattr4(error, &nmreq, vap, nmp);
6366 nfsm_chain_add_bitmap_supported(error, &nmreq, bitmap, nmp, NULL);
6371 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, dnp);
6482 struct nfsmount *nmp;
6485 nmp = VTONMP(ap->a_dvp);
6486 if (!nmp)
6502 vtonfs_type(ap->a_vap->va_type, nmp->nm_vers), NULL, &np);
6566 struct nfsmount *nmp;
6577 nmp = VTONMP(vp);
6578 if (!nmp)
6580 nfsvers = nmp->nm_vers;
6614 nfsm_chain_add_name(error, &nmreq, cnp->cn_nameptr, cnp->cn_namelen, nmp);
6617 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, tdnp);
6622 nfsm_chain_add_bitmap_supported(error, &nmreq, nfs_getattr_bitmap, nmp, np);
6684 struct nfsmount *nmp;
6693 nmp = NFSTONMP(dnp);
6694 if (!nmp)
6696 namedattrs = (nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR);
6766 struct nfsmount *nmp;
6777 nmp = NFSTONMP(np);
6778 if (!nmp)
6795 error = nfs_nget(nmp->nm_mountp, NULL, &cn, np->n_attrdirfh+1, *np->n_attrdirfh,
6811 nfsm_chain_add_fh(error, &nmreq, nmp->nm_vers, np->n_fhp, np->n_fhsize);
6820 NFS_ATTR_BITMAP_LEN, nmp->nm_fsattr.nfsa_supp_attr);
6911 struct nfsmount *nmp;
6945 nmp = NFSTONMP(np);
6946 if (!nmp)
6949 negnamecache = !NMFLAG(nmp, NONEGNAMECACHE);
6980 noop = nfs_open_owner_find(nmp, vfs_context_ucred(ctx), 1);
6994 rlen = MIN(nmp->nm_rsize, nmp->nm_biosize);
7058 error = nfs_mount_state_in_use_start(nmp, vfs_context_thread(ctx));
7073 nfs_mount_state_in_use_end(nmp, 0);
7142 nfsm_chain_add_fh(error, &nmreq, nmp->nm_vers, adnp->n_fhp, adnp->n_fhsize);
7146 nfsm_chain_add_fh(error, &nmreq, nmp->nm_vers, np->n_fhp, np->n_fhsize);
7155 NFS_ATTR_BITMAP_LEN, nmp->nm_fsattr.nfsa_supp_attr);
7163 nfsm_chain_add_64(error, &nmreq, nmp->nm_clientid);
7172 nfsm_chain_add_fattr4(error, &nmreq, &vattr, nmp);
7175 nfsm_chain_add_name(error, &nmreq, cnp->cn_nameptr, cnp->cn_namelen, nmp);
7179 nfsm_chain_add_name(error, &nmreq, cnp->cn_nameptr, cnp->cn_namelen, nmp);
7186 NFS_ATTR_BITMAP_LEN, nmp->nm_fsattr.nfsa_supp_attr);
7194 nfsm_chain_add_fh(error, &nmreq, nmp->nm_vers, adnp->n_fhp, adnp->n_fhsize);
7198 nfsm_chain_add_fh(error, &nmreq, nmp->nm_vers, np->n_fhp, np->n_fhsize);
7206 NFS_ATTR_BITMAP_LEN, nmp->nm_fsattr.nfsa_supp_attr);
7214 nfsm_chain_add_fattr4(error, &nmreq, &vattr, nmp);
7347 nfsm_chain_loadattr(error, &nmrep, adnp, nmp->nm_vers, &xid);
7359 error = nfs4_open_confirm_rpc(nmp, adnp ? adnp : np, fh.fh_data, fh.fh_len, noop, &newnofp->nof_stateid, thd, cred, &nvattr, &xid);
7443 lck_mtx_lock(&nmp->nm_lock);
7445 TAILQ_INSERT_TAIL(&nmp->nm_delegations, anp, n_dlink);
7446 lck_mtx_unlock(&nmp->nm_lock);
7460 lck_mtx_lock(&nmp->nm_lock);
7462 TAILQ_INSERT_TAIL(&nmp->nm_delegations, anp, n_dlink);
7463 lck_mtx_unlock(&nmp->nm_lock);
7473 nfs4_delegreturn_rpc(nmp, fh.fh_data, fh.fh_len, &dstateid, 0, thd, cred);
7486 if (inuse && nfs_mount_state_in_use_end(nmp, error)) {
7561 error = nfs_buf_get(anp, 0, nmp->nm_biosize, thd, NBLK_READ|NBLK_NOWAIT, &bp);
7625 struct nfsmount *nmp;
7630 nmp = NFSTONMP(np);
7631 if (!nmp)
7692 struct nfsmount *nmp;
7698 nmp = VTONMP(ap->a_vp);
7699 if (!nmp)
7702 if (!(nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR))
7750 struct nfsmount *nmp;
7762 nmp = VTONMP(ap->a_vp);
7763 if (!nmp)
7766 if (!(nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR))
7898 struct nfsmount *nmp = VTONMP(ap->a_vp);
7901 if (!nmp)
7903 if (!(nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR))
7927 struct nfsmount *nmp;
7935 nmp = VTONMP(ap->a_vp);
7936 if (!nmp)
7939 if (!(nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR))
8075 struct nfsmount *nmp;
8081 nmp = VTONMP(ap->a_vp);
8082 if (!nmp)
8085 if (!(nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR))
8123 struct nfsmount *nmp;
8128 nmp = VTONMP(ap->a_vp);
8129 if (!nmp)
8132 if (!(nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR))
8163 struct nfsmount *nmp = VTONMP(ap->a_vp);
8167 if (!nmp)
8174 if (!(nmp->nm_fsattr.nfsa_flags & NFS_FSFLAG_NAMED_ATTR))