• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.5.8/xnu-1228.15.4/bsd/nfs/

Lines Matching defs:np

148 	nfsnode_t np;
170 for (np = nhpp->lh_first; np != 0; np = np->n_hash.le_next) {
171 mp2 = (np->n_hflag & NHINIT) ? np->n_mount : NFSTOMP(np);
172 if (mp != mp2 || np->n_fhsize != fhsize ||
173 bcmp(fhp, np->n_fhp, fhsize))
175 FSDBG(263, dnp, np, np->n_flag, 0xcace0000);
177 if (np->n_hflag & NHLOCKED) {
178 np->n_hflag |= NHLOCKWANT;
179 FSDBG(263, dnp, np, np->n_flag, 0xcace2222);
180 msleep(np, nfs_node_hash_mutex, PDROP | PINOD, "nfs_nget", NULL);
181 FSDBG(263, dnp, np, np->n_flag, 0xcace3333);
184 vp = NFSTOV(np);
195 if ((error = nfs_lock(np, NFS_NODE_LOCK_EXCLUSIVE))) {
203 error = nfs_loadattrcache(np, nvap, xidp, 0);
205 nfs_unlock(np);
210 *npp = np;
223 MALLOC_ZONE(np, nfsnode_t, sizeof *np, M_NFSNODE, M_WAITOK);
224 if (!np) {
230 bzero(np, sizeof *np);
231 np->n_hflag |= (NHINIT | NHLOCKED);
232 np->n_mount = mp;
239 np->n_parent = dvp;
246 MALLOC_ZONE(np->n_fhp, u_char *,
248 if (!np->n_fhp) {
250 FREE_ZONE(np, sizeof *np, M_NFSNODE);
256 np->n_fhp = &np->n_fh[0];
258 bcopy(fhp, np->n_fhp, fhsize);
259 np->n_fhsize = fhsize;
262 LIST_INSERT_HEAD(nhpp, np, n_hash);
263 np->n_hflag |= NHHASHED;
264 FSDBG(266, 0, np, np->n_flag, np->n_hflag);
267 lck_rw_init(&np->n_lock, nfs_node_lck_grp, LCK_ATTR_NULL);
268 lck_rw_init(&np->n_datalock, nfs_node_lck_grp, LCK_ATTR_NULL);
269 nfs_lock(np, NFS_NODE_LOCK_FORCE);
275 error = nfs_loadattrcache(np, nvap, xidp, 1);
277 FSDBG(266, 0, np, np->n_flag, 0xb1eb1e);
278 nfs_unlock(np);
280 LIST_REMOVE(np, n_hash);
281 np->n_hflag &= ~(NHHASHED|NHINIT|NHLOCKED);
282 if (np->n_hflag & NHLOCKWANT) {
283 np->n_hflag &= ~NHLOCKWANT;
284 wakeup(np);
287 if (np->n_parent) {
288 if (!vnode_get(np->n_parent)) {
289 vnode_rele(np->n_parent);
290 vnode_put(np->n_parent);
292 np->n_parent = NULL;
294 lck_rw_destroy(&np->n_lock, nfs_node_lck_grp);
295 lck_rw_destroy(&np->n_datalock, nfs_node_lck_grp);
296 if (np->n_fhsize > NFS_SMALLFH)
297 FREE_ZONE(np->n_fhp, np->n_fhsize, M_NFSBIGFH);
298 FREE_ZONE(np, sizeof *np, M_NFSNODE);
303 NFS_CHANGED_UPDATE(nfsvers, np, nvap);
305 NFS_CHANGED_UPDATE_NC(nfsvers, np, nvap);
306 NMODEINVALIDATE(np);
313 vfsp.vnfs_fsnode = np;
344 error = vnode_create(VNCREATE_FLAVOR, VCREATESIZE, &vfsp, &np->n_vnode);
346 FSDBG(266, 0, np, np->n_flag, 0xb1eb1e);
347 nfs_unlock(np);
349 LIST_REMOVE(np, n_hash);
350 np->n_hflag &= ~(NHHASHED|NHINIT|NHLOCKED);
351 if (np->n_hflag & NHLOCKWANT) {
352 np->n_hflag &= ~NHLOCKWANT;
353 wakeup(np);
356 if (np->n_parent) {
357 if (!vnode_get(np->n_parent)) {
358 vnode_rele(np->n_parent);
359 vnode_put(np->n_parent);
361 np->n_parent = NULL;
363 lck_rw_destroy(&np->n_lock, nfs_node_lck_grp);
364 lck_rw_destroy(&np->n_datalock, nfs_node_lck_grp);
365 if (np->n_fhsize > NFS_SMALLFH)
366 FREE_ZONE(np->n_fhp, np->n_fhsize, M_NFSBIGFH);
367 FREE_ZONE(np, sizeof *np, M_NFSNODE);
372 vp = np->n_vnode;
378 np->n_hflag &= ~(NHINIT|NHLOCKED);
379 if (np->n_hflag & NHLOCKWANT) {
380 np->n_hflag &= ~NHLOCKWANT;
381 wakeup(np);
385 *npp = np;
401 nfsnode_t np;
407 np = VTONFS(ap->a_vp);
409 nfs_lock(np, NFS_NODE_LOCK_FORCE);
412 nsp = np->n_sillyrename;
413 np->n_sillyrename = NULL;
417 FSDBG_TOP(264, vp, np, np->n_flag, nsp);
422 np->n_flag &= (NMODIFIED);
423 nfs_unlock(np);
424 FSDBG_BOT(264, vp, np, np->n_flag, 0);
431 nfs_unlock(np);
438 attrerr = nfs_getattr(np, &nvattr, ap->a_context, 0);
450 nfs_lock2(nsp->nsr_dnp, np, NFS_NODE_LOCK_FORCE);
454 while (np->n_hflag & NHLOCKED) {
455 np->n_hflag |= NHLOCKWANT;
456 msleep(np, nfs_node_hash_mutex, PINOD, "nfs_inactive", NULL);
458 np->n_hflag |= NHLOCKED;
464 FSDBG(264, np, np->n_size, np->n_vattr.nva_size, 0xf00d00f1);
470 np->n_flag &= (NMODIFIED);
471 nfs_unlock2(nsp->nsr_dnp, np);
476 ubc_setsize(vp, np->n_size);
486 if (np->n_hflag & NHHASHED) {
487 LIST_REMOVE(np, n_hash);
488 np->n_hflag &= ~NHHASHED;
489 FSDBG(266, 0, np, np->n_flag, 0xb1eb1e);
494 np->n_hflag &= ~NHLOCKED;
495 if (np->n_hflag & NHLOCKWANT) {
496 np->n_hflag &= ~NHLOCKWANT;
497 wakeup(np);
507 FSDBG_BOT(264, vp, np, np->n_flag, 0);
523 nfsnode_t np = VTONFS(vp);
526 FSDBG_TOP(265, vp, np, np->n_flag, 0);
530 if ((vnode_vtype(vp) != VDIR) && np->n_sillyrename)
531 printf("nfs_reclaim: leaving unlinked file %s\n", np->n_sillyrename->nsr_name);
535 if (np->n_hflag & NHHASHED) {
536 LIST_REMOVE(np, n_hash);
537 np->n_hflag &= ~NHHASHED;
538 FSDBG(266, 0, np, np->n_flag, 0xb1eb1e);
547 nfs_lock(np, NFS_NODE_LOCK_FORCE);
549 dp = np->n_cookies.lh_first;
557 if (np->n_fhsize > NFS_SMALLFH) {
558 FREE_ZONE(np->n_fhp, np->n_fhsize, M_NFSBIGFH);
561 nfs_unlock(np);
564 if (np->n_parent) {
565 if (!vnode_get(np->n_parent)) {
566 vnode_rele(np->n_parent);
567 vnode_put(np->n_parent);
569 np->n_parent = NULL;
572 lck_rw_destroy(&np->n_lock, nfs_node_lck_grp);
573 lck_rw_destroy(&np->n_datalock, nfs_node_lck_grp);
575 FSDBG_BOT(265, vp, np, np->n_flag, 0xd1ed1e);
576 FREE_ZONE(np, sizeof(struct nfsnode), M_NFSNODE);
584 nfs_lock(nfsnode_t np, int locktype)
586 FSDBG_TOP(268, np, locktype, np->n_lockowner, 0);
588 lck_rw_lock_shared(&np->n_lock);
590 lck_rw_lock_exclusive(&np->n_lock);
591 np->n_lockowner = current_thread();
593 if ((locktype != NFS_NODE_LOCK_FORCE) && !(np->n_hflag && NHHASHED)) {
594 FSDBG_BOT(268, np, 0xdead, np->n_lockowner, 0);
595 nfs_unlock(np);
598 FSDBG_BOT(268, np, locktype, np->n_lockowner, 0);
606 nfs_unlock(nfsnode_t np)
608 FSDBG(269, np, np->n_lockowner, current_thread(), 0);
609 np->n_lockowner = NULL;
610 lck_rw_done(&np->n_lock);
740 nfs_data_lock(nfsnode_t np, int locktype)
742 nfs_data_lock2(np, locktype, 1);
745 nfs_data_lock2(nfsnode_t np, int locktype, int updatesize)
747 FSDBG_TOP(270, np, locktype, np->n_datalockowner, 0);
749 if (updatesize && ISSET(np->n_flag, NUPDATESIZE))
750 nfs_data_update_size(np, 0);
751 lck_rw_lock_shared(&np->n_datalock);
753 lck_rw_lock_exclusive(&np->n_datalock);
754 np->n_datalockowner = current_thread();
755 if (updatesize && ISSET(np->n_flag, NUPDATESIZE))
756 nfs_data_update_size(np, 1);
758 FSDBG_BOT(270, np, locktype, np->n_datalockowner, 0);
765 nfs_data_unlock(nfsnode_t np)
767 nfs_data_unlock2(np, 1);
770 nfs_data_unlock2(nfsnode_t np, int updatesize)
772 int mine = (np->n_datalockowner == current_thread());
773 FSDBG_TOP(271, np, np->n_datalockowner, current_thread(), 0);
774 if (updatesize && mine && ISSET(np->n_flag, NUPDATESIZE))
775 nfs_data_update_size(np, 1);
776 np->n_datalockowner = NULL;
777 lck_rw_done(&np->n_datalock);
778 if (updatesize && !mine && ISSET(np->n_flag, NUPDATESIZE))
779 nfs_data_update_size(np, 0);
780 FSDBG_BOT(271, np, np->n_datalockowner, current_thread(), 0);
788 nfs_data_update_size(nfsnode_t np, int datalocked)
792 FSDBG_TOP(272, np, np->n_flag, np->n_size, np->n_newsize);
794 nfs_data_lock(np, NFS_NODE_LOCK_EXCLUSIVE);
796 nfs_data_unlock(np);
797 FSDBG_BOT(272, np, np->n_flag, np->n_size, np->n_newsize);
800 error = nfs_lock(np, NFS_NODE_LOCK_EXCLUSIVE);
801 if (error || !ISSET(np->n_flag, NUPDATESIZE)) {
803 nfs_unlock(np);
804 FSDBG_BOT(272, np, np->n_flag, np->n_size, np->n_newsize);
807 CLR(np->n_flag, NUPDATESIZE);
808 np->n_size = np->n_newsize;
810 SET(np->n_flag, NNEEDINVALIDATE);
811 nfs_unlock(np);
812 ubc_setsize(NFSTOV(np), (off_t)np->n_size); /* XXX error? */
813 FSDBG_BOT(272, np, np->n_flag, np->n_size, np->n_newsize);