Lines Matching defs:nofp

685 	struct nfs_open_file *nofp = NULL;
771 error = nfs_open_file_find(np, noop, &nofp, accessMode, denyMode, 1);
772 if (!error && (nofp->nof_flags & NFS_OPEN_FILE_LOST)) {
773 NP(np, "nfs_vnop_open: LOST %d", kauth_cred_getuid(nofp->nof_owner->noo_cred));
776 if (!error && (nofp->nof_flags & NFS_OPEN_FILE_REOPEN)) {
778 error = nfs4_reopen(nofp, vfs_context_thread(ctx));
779 nofp = NULL;
784 error = nfs_open_file_set_busy(nofp, vfs_context_thread(ctx));
786 nofp = NULL;
794 nfs_open_file_add_open(nofp, accessMode, denyMode, 0);
802 if ((nofp->nof_flags & NFS_OPEN_FILE_CREATE) &&
803 (nofp->nof_creator == current_thread()) &&
806 nofp->nof_flags &= ~NFS_OPEN_FILE_CREATE;
807 nofp->nof_creator = NULL;
810 error = nfs4_open(np, nofp, accessMode, denyMode, ctx);
811 if ((error == EACCES) && (nofp->nof_flags & NFS_OPEN_FILE_CREATE) &&
812 (nofp->nof_creator == current_thread())) {
823 NP(np, "nfs_vnop_open: deny mode foregone on create, %d", kauth_cred_getuid(nofp->nof_owner->noo_cred));
824 nofp->nof_creator = NULL;
835 if ((nofp->nof_flags & NFS_OPEN_FILE_CREATE) &&
836 (nofp->nof_creator == current_thread())) {
837 error = nfs_close(np, nofp, NFS_OPEN_SHARE_ACCESS_BOTH, NFS_OPEN_SHARE_DENY_NONE, ctx);
839 NP(np, "nfs_vnop_open: create close error %d, %d", error, kauth_cred_getuid(nofp->nof_owner->noo_cred));
842 nofp->nof_flags &= ~NFS_OPEN_FILE_CREATE;
848 if (nofp)
849 nfs_open_file_clear_busy(nofp);
851 nofp = NULL;
875 struct nfs_open_file *nofp;
877 TAILQ_FOREACH(nofp, &np->n_opens, nof_link) {
878 writers += nofp->nof_w + nofp->nof_rw + nofp->nof_w_dw + nofp->nof_rw_dw +
879 nofp->nof_w_drw + nofp->nof_rw_drw + nofp->nof_d_w_dw +
880 nofp->nof_d_rw_dw + nofp->nof_d_w_drw + nofp->nof_d_rw_drw +
881 nofp->nof_d_w + nofp->nof_d_rw;
928 struct nfs_open_file *nofp = NULL;
998 if (nofp->nof_deny & NFS_OPEN_SHARE_DENY_READ)
1000 else if (nofp->nof_deny & NFS_OPEN_SHARE_DENY_WRITE)
1062 error = nfs_open_file_find(np, noop, &nofp, 0, 0, 0);
1063 if (!error && (nofp->nof_flags & NFS_OPEN_FILE_REOPEN)) {
1065 error = nfs4_reopen(nofp, NULL);
1066 nofp = NULL;
1075 error = nfs_open_file_set_busy(nofp, NULL);
1077 nofp = NULL;
1081 error = nfs_close(np, nofp, accessMode, denyMode, ctx);
1086 if (nofp)
1087 nfs_open_file_clear_busy(nofp);
1089 nofp = NULL;
1110 struct nfs_open_file *nofp,
1120 if (((accessMode & nofp->nof_access) != accessMode) || ((denyMode & nofp->nof_deny) != denyMode))
1122 accessMode, denyMode, nofp->nof_access, nofp->nof_deny,
1123 kauth_cred_getuid(nofp->nof_owner->noo_cred));
1131 (nofp->nof_w == 0) && (nofp->nof_d_w == 0) &&
1132 (nofp->nof_rw || nofp->nof_d_rw))
1136 (nofp->nof_w_dw == 0) && (nofp->nof_d_w_dw == 0) &&
1137 (nofp->nof_rw_dw || nofp->nof_d_rw_dw))
1141 (nofp->nof_w_drw == 0) && (nofp->nof_d_w_drw == 0) &&
1142 (nofp->nof_rw_drw || nofp->nof_d_rw_drw))
1146 nfs_open_file_remove_open_find(nofp, accessMode, denyMode, &newAccessMode, &newDenyMode, &delegated);
1147 if ((newAccessMode != nofp->nof_access) || (newDenyMode != nofp->nof_deny))
1155 if ((newAccessMode == 0) || (nofp->nof_opencnt == 1)) {
1162 if (!delegated && !(nofp->nof_flags & NFS_OPEN_FILE_LOST))
1163 error = nfs4_close_rpc(np, nofp, vfs_context_thread(ctx), vfs_context_ucred(ctx), 0);
1175 error = nfs4_close_rpc(np, nofp, vfs_context_thread(ctx), vfs_context_ucred(ctx), 0);
1182 if (!delegated && !(nofp->nof_flags & NFS_OPEN_FILE_LOST)) {
1188 if (nofp->nof_d_rw_drw || nofp->nof_d_w_drw || nofp->nof_d_r_drw ||
1189 nofp->nof_d_rw_dw || nofp->nof_d_w_dw || nofp->nof_d_r_dw ||
1190 nofp->nof_d_rw || nofp->nof_d_w || nofp->nof_d_r)
1191 nfs4_claim_delegated_state_for_open_file(nofp, 0);
1193 nfs_open_file_remove_open(nofp, accessMode, denyMode);
1194 error = nfs4_open_downgrade_rpc(np, nofp, ctx);
1196 nfs_open_file_add_open(nofp, accessMode, denyMode, delegated);
1201 NP(np, "nfs_close: error %d, %d", error, kauth_cred_getuid(nofp->nof_owner->noo_cred));
1207 nfs_open_file_remove_open(nofp, accessMode, denyMode);
1210 lck_mtx_lock(&nofp->nof_lock);
1211 if (nofp->nof_r || nofp->nof_d_r || nofp->nof_w || nofp->nof_d_w || nofp->nof_d_rw ||
1212 (nofp->nof_rw && !((nofp->nof_flags & NFS_OPEN_FILE_CREATE) && !nofp->nof_creator && (nofp->nof_rw == 1))) ||
1213 nofp->nof_r_dw || nofp->nof_d_r_dw || nofp->nof_w_dw || nofp->nof_d_w_dw ||
1214 nofp->nof_rw_dw || nofp->nof_d_rw_dw || nofp->nof_r_drw || nofp->nof_d_r_drw ||
1215 nofp->nof_w_drw || nofp->nof_d_w_drw || nofp->nof_rw_drw || nofp->nof_d_rw_drw)
1217 nofp->nof_r, nofp->nof_d_r, nofp->nof_w, nofp->nof_d_w,
1218 nofp->nof_rw, nofp->nof_d_rw, nofp->nof_r_dw, nofp->nof_d_r_dw,
1219 nofp->nof_w_dw, nofp->nof_d_w_dw, nofp->nof_rw_dw, nofp->nof_d_rw_dw,
1220 nofp->nof_r_drw, nofp->nof_d_r_drw, nofp->nof_w_drw, nofp->nof_d_w_drw,
1221 nofp->nof_rw_drw, nofp->nof_d_rw_drw, nofp->nof_flags,
1222 kauth_cred_getuid(nofp->nof_owner->noo_cred));
1224 nofp->nof_access = nofp->nof_deny = 0;
1225 nofp->nof_mmap_access = nofp->nof_mmap_deny = 0;
1226 nofp->nof_r = nofp->nof_d_r = 0;
1227 nofp->nof_w = nofp->nof_d_w = 0;
1228 nofp->nof_rw = nofp->nof_d_rw = 0;
1229 nofp->nof_r_dw = nofp->nof_d_r_dw = 0;
1230 nofp->nof_w_dw = nofp->nof_d_w_dw = 0;
1231 nofp->nof_rw_dw = nofp->nof_d_rw_dw = 0;
1232 nofp->nof_r_drw = nofp->nof_d_r_drw = 0;
1233 nofp->nof_w_drw = nofp->nof_d_w_drw = 0;
1234 nofp->nof_rw_drw = nofp->nof_d_rw_drw = 0;
1235 nofp->nof_flags &= ~NFS_OPEN_FILE_CREATE;
1236 lck_mtx_unlock(&nofp->nof_lock);
1239 if (nofp->nof_flags & NFS_OPEN_FILE_LOST) {
1241 NP(np, "nfs_close: LOST%s, %d", !nofp->nof_opencnt ? " (last)" : "",
1242 kauth_cred_getuid(nofp->nof_owner->noo_cred));
1539 struct nfs_open_file *nofp = NULL;
1607 error = nfs_open_file_find(np, noop, &nofp, 0, 0, 1);
1608 if (!error && (nofp->nof_flags & NFS_OPEN_FILE_LOST))
1610 if (!error && (nofp->nof_flags & NFS_OPEN_FILE_REOPEN)) {
1612 error = nfs4_reopen(nofp, vfs_context_thread(ctx));
1613 nofp = NULL;
1618 error = nfs_open_file_set_busy(nofp, vfs_context_thread(ctx));
1623 if (!(nofp->nof_access & NFS_OPEN_SHARE_ACCESS_WRITE)) {
1625 error = nfs4_open(np, nofp, NFS_OPEN_SHARE_ACCESS_WRITE, NFS_OPEN_SHARE_DENY_NONE, ctx);
1627 nofp->nof_flags |= NFS_OPEN_FILE_SETATTR;
1629 nfs_open_file_clear_busy(nofp);
1630 nofp = NULL;
1811 if (nofp) {
1814 (nofp->nof_flags & NFS_OPEN_FILE_SETATTR)) {
1815 int err = nfs_close(np, nofp, NFS_OPEN_SHARE_ACCESS_WRITE, NFS_OPEN_SHARE_DENY_NONE, ctx);
1818 nofp->nof_flags &= ~NFS_OPEN_FILE_SETATTR;
1820 nfs_open_file_clear_busy(nofp);
1821 nofp = NULL;