Lines Matching refs:rp

116 	rnode_t *rp;  in nfs_waitfor_purge_complete()  local
119 rp = VTOR(vp); in nfs_waitfor_purge_complete()
120 if (rp->r_serial != NULL && rp->r_serial != curthread) { in nfs_waitfor_purge_complete()
121 mutex_enter(&rp->r_statelock); in nfs_waitfor_purge_complete()
123 while (rp->r_serial != NULL) { in nfs_waitfor_purge_complete()
124 if (!cv_wait_sig(&rp->r_cv, &rp->r_statelock)) { in nfs_waitfor_purge_complete()
126 mutex_exit(&rp->r_statelock); in nfs_waitfor_purge_complete()
131 mutex_exit(&rp->r_statelock); in nfs_waitfor_purge_complete()
196 rnode_t *rp; in nfs_purge_caches() local
205 rp = VTOR(vp); in nfs_purge_caches()
206 mutex_enter(&rp->r_statelock); in nfs_purge_caches()
209 !(rp->r_flags & RINDNLCPURGE)) { in nfs_purge_caches()
215 rp->r_flags |= RINDNLCPURGE; in nfs_purge_caches()
216 mutex_exit(&rp->r_statelock); in nfs_purge_caches()
218 mutex_enter(&rp->r_statelock); in nfs_purge_caches()
219 if (rp->r_flags & RINDNLCPURGE) in nfs_purge_caches()
220 rp->r_flags &= ~RINDNLCPURGE; in nfs_purge_caches()
226 contents = rp->r_symlink.contents; in nfs_purge_caches()
227 size = rp->r_symlink.size; in nfs_purge_caches()
228 rp->r_symlink.contents = NULL; in nfs_purge_caches()
229 mutex_exit(&rp->r_statelock); in nfs_purge_caches()
242 mutex_enter(&rp->r_statelock); in nfs_purge_caches()
243 if (!rp->r_error) in nfs_purge_caches()
244 rp->r_error = error; in nfs_purge_caches()
245 mutex_exit(&rp->r_statelock); in nfs_purge_caches()
252 if (HAVE_RDDIR_CACHE(rp)) in nfs_purge_caches()
262 rnode_t *rp; in nfs_purge_rddir_cache() local
266 rp = VTOR(vp); in nfs_purge_rddir_cache()
268 mutex_enter(&rp->r_statelock); in nfs_purge_rddir_cache()
269 rp->r_direof = NULL; in nfs_purge_rddir_cache()
270 rp->r_flags &= ~RLOOKUP; in nfs_purge_rddir_cache()
271 rp->r_flags |= RREADDIRPLUS; in nfs_purge_rddir_cache()
272 rdc = avl_first(&rp->r_dir); in nfs_purge_rddir_cache()
274 nrdc = AVL_NEXT(&rp->r_dir, rdc); in nfs_purge_rddir_cache()
275 avl_remove(&rp->r_dir, rdc); in nfs_purge_rddir_cache()
279 mutex_exit(&rp->r_statelock); in nfs_purge_rddir_cache()
382 rnode_t *rp; in nfs_attrcache() local
386 rp = VTOR(vp); in nfs_attrcache()
387 mutex_enter(&rp->r_statelock); in nfs_attrcache()
388 if (rp->r_mtime <= t) in nfs_attrcache()
390 mutex_exit(&rp->r_statelock); in nfs_attrcache()
408 rnode_t *rp; in nfs3_attrcache() local
412 rp = VTOR(vp); in nfs3_attrcache()
413 mutex_enter(&rp->r_statelock); in nfs3_attrcache()
414 if (rp->r_mtime <= t) in nfs3_attrcache()
416 mutex_exit(&rp->r_statelock); in nfs3_attrcache()
484 rnode_t *rp; in nfs_attr_cache() local
493 rp = VTOR(vp); in nfs_attr_cache()
495 mutex_enter(&rp->r_statelock); in nfs_attr_cache()
497 if (rp->r_serial != curthread) { in nfs_attr_cache()
503 while (rp->r_serial != NULL) { in nfs_attr_cache()
504 if (!cv_wait_sig(&rp->r_cv, &rp->r_statelock)) { in nfs_attr_cache()
505 mutex_exit(&rp->r_statelock); in nfs_attr_cache()
516 if (rp->r_mtime > t) { in nfs_attr_cache()
517 if (!CACHE_VALID(rp, vap->va_mtime, vap->va_size)) in nfs_attr_cache()
518 PURGE_ATTRCACHE_LOCKED(rp); in nfs_attr_cache()
519 mutex_exit(&rp->r_statelock); in nfs_attr_cache()
530 if (!(rp->r_flags & RWRITEATTR)) { in nfs_attr_cache()
531 if (!CACHE_VALID(rp, vap->va_mtime, vap->va_size)) in nfs_attr_cache()
534 if (rp->r_attr.va_ctime.tv_sec != vap->va_ctime.tv_sec || in nfs_attr_cache()
535 rp->r_attr.va_ctime.tv_nsec != vap->va_ctime.tv_nsec) in nfs_attr_cache()
541 preattr_rsize = rp->r_size; in nfs_attr_cache()
552 if ((vp->v_type == VREG) && (rp->r_size != preattr_rsize)) { in nfs_attr_cache()
562 if (mtime_changed && !(rp->r_flags & RINCACHEPURGE)) { in nfs_attr_cache()
563 rp->r_flags |= RINCACHEPURGE; in nfs_attr_cache()
569 mutex_exit(&rp->r_statelock); in nfs_attr_cache()
573 rp->r_serial = curthread; in nfs_attr_cache()
575 mutex_exit(&rp->r_statelock); in nfs_attr_cache()
580 if ((rp->r_flags & RINCACHEPURGE) && cachepurge_set) { in nfs_attr_cache()
581 mutex_enter(&rp->r_statelock); in nfs_attr_cache()
582 rp->r_flags &= ~RINCACHEPURGE; in nfs_attr_cache()
583 cv_broadcast(&rp->r_cv); in nfs_attr_cache()
584 mutex_exit(&rp->r_statelock); in nfs_attr_cache()
589 (void) nfs_access_purge_rp(rp); in nfs_attr_cache()
590 if (rp->r_secattr != NULL) { in nfs_attr_cache()
591 mutex_enter(&rp->r_statelock); in nfs_attr_cache()
592 vsp = rp->r_secattr; in nfs_attr_cache()
593 rp->r_secattr = NULL; in nfs_attr_cache()
594 mutex_exit(&rp->r_statelock); in nfs_attr_cache()
601 mutex_enter(&rp->r_statelock); in nfs_attr_cache()
602 rp->r_serial = NULL; in nfs_attr_cache()
603 cv_broadcast(&rp->r_cv); in nfs_attr_cache()
604 mutex_exit(&rp->r_statelock); in nfs_attr_cache()
627 rnode_t *rp; in nfs3_attr_cache() local
636 rp = VTOR(vp); in nfs3_attr_cache()
638 mutex_enter(&rp->r_statelock); in nfs3_attr_cache()
640 if (rp->r_serial != curthread) { in nfs3_attr_cache()
646 while (rp->r_serial != NULL) { in nfs3_attr_cache()
647 if (!cv_wait_sig(&rp->r_cv, &rp->r_statelock)) { in nfs3_attr_cache()
648 mutex_exit(&rp->r_statelock); in nfs3_attr_cache()
659 if (rp->r_mtime > t) { in nfs3_attr_cache()
660 if (!CACHE_VALID(rp, avap->va_mtime, avap->va_size)) in nfs3_attr_cache()
661 PURGE_ATTRCACHE_LOCKED(rp); in nfs3_attr_cache()
662 mutex_exit(&rp->r_statelock); in nfs3_attr_cache()
673 if (!(rp->r_flags & RWRITEATTR)) { in nfs3_attr_cache()
674 if (!CACHE_VALID(rp, bvap->va_mtime, bvap->va_size)) in nfs3_attr_cache()
677 if (rp->r_attr.va_ctime.tv_sec != bvap->va_ctime.tv_sec || in nfs3_attr_cache()
678 rp->r_attr.va_ctime.tv_nsec != bvap->va_ctime.tv_nsec) in nfs3_attr_cache()
684 preattr_rsize = rp->r_size; in nfs3_attr_cache()
695 if ((vp->v_type == VREG) && (rp->r_size != preattr_rsize)) { in nfs3_attr_cache()
705 if (mtime_changed && !(rp->r_flags & RINCACHEPURGE)) { in nfs3_attr_cache()
706 rp->r_flags |= RINCACHEPURGE; in nfs3_attr_cache()
712 mutex_exit(&rp->r_statelock); in nfs3_attr_cache()
716 rp->r_serial = curthread; in nfs3_attr_cache()
718 mutex_exit(&rp->r_statelock); in nfs3_attr_cache()
723 if ((rp->r_flags & RINCACHEPURGE) && cachepurge_set) { in nfs3_attr_cache()
724 mutex_enter(&rp->r_statelock); in nfs3_attr_cache()
725 rp->r_flags &= ~RINCACHEPURGE; in nfs3_attr_cache()
726 cv_broadcast(&rp->r_cv); in nfs3_attr_cache()
727 mutex_exit(&rp->r_statelock); in nfs3_attr_cache()
732 (void) nfs_access_purge_rp(rp); in nfs3_attr_cache()
733 if (rp->r_secattr != NULL) { in nfs3_attr_cache()
734 mutex_enter(&rp->r_statelock); in nfs3_attr_cache()
735 vsp = rp->r_secattr; in nfs3_attr_cache()
736 rp->r_secattr = NULL; in nfs3_attr_cache()
737 mutex_exit(&rp->r_statelock); in nfs3_attr_cache()
744 mutex_enter(&rp->r_statelock); in nfs3_attr_cache()
745 rp->r_serial = NULL; in nfs3_attr_cache()
746 cv_broadcast(&rp->r_cv); in nfs3_attr_cache()
747 mutex_exit(&rp->r_statelock); in nfs3_attr_cache()
762 rnode_t *rp; in nfs_attrcache_va() local
767 rp = VTOR(vp); in nfs_attrcache_va()
769 ASSERT(MUTEX_HELD(&rp->r_statelock)); in nfs_attrcache_va()
790 if (va->va_mtime.tv_sec != rp->r_attr.va_mtime.tv_sec || in nfs_attrcache_va()
791 va->va_mtime.tv_nsec != rp->r_attr.va_mtime.tv_nsec || in nfs_attrcache_va()
792 va->va_size != rp->r_attr.va_size) in nfs_attrcache_va()
793 rp->r_mtime = now; in nfs_attrcache_va()
798 delta = now - rp->r_mtime; in nfs_attrcache_va()
811 rp->r_attrtime = now + delta; in nfs_attrcache_va()
812 rp->r_attr = *va; in nfs_attrcache_va()
818 if (rp->r_size != va->va_size && in nfs_attrcache_va()
820 (!(rp->r_flags & RDIRTY) && rp->r_count == 0))) in nfs_attrcache_va()
821 rp->r_size = va->va_size; in nfs_attrcache_va()
823 rp->r_flags &= ~RWRITEATTR; in nfs_attrcache_va()
834 rnode_t *rp; in nfs_getattr_cache() local
837 rp = VTOR(vp); in nfs_getattr_cache()
838 mutex_enter(&rp->r_statelock); in nfs_getattr_cache()
843 *vap = rp->r_attr; in nfs_getattr_cache()
852 mutex_exit(&rp->r_statelock); in nfs_getattr_cache()
855 mutex_exit(&rp->r_statelock); in nfs_getattr_cache()
916 rnode_t *rp; in nfsgetattr() local
928 rp = VTOR(vp); in nfsgetattr()
929 mutex_enter(&rp->r_statelock); in nfsgetattr()
930 vap->va_size = rp->r_size; in nfsgetattr()
931 mutex_exit(&rp->r_statelock); in nfsgetattr()
996 rnode_t *rp; in nfs3getattr() local
1008 rp = VTOR(vp); in nfs3getattr()
1009 mutex_enter(&rp->r_statelock); in nfs3getattr()
1010 vap->va_size = rp->r_size; in nfs3getattr()
1011 mutex_exit(&rp->r_statelock); in nfs3getattr()
1201 rnode_t *rp; in free_async_args() local
1204 rp = VTOR(args->a_vp); in free_async_args()
1205 mutex_enter(&rp->r_statelock); in free_async_args()
1206 rp->r_count--; in free_async_args()
1209 rp->r_awcount--; in free_async_args()
1210 cv_broadcast(&rp->r_cv); in free_async_args()
1211 mutex_exit(&rp->r_statelock); in free_async_args()
1368 rnode_t *rp; in nfs_async_readahead() local
1372 rp = VTOR(vp); in nfs_async_readahead()
1373 ASSERT(rp->r_freef == NULL); in nfs_async_readahead()
1394 if (!nfs_rw_tryenter(&rp->r_lkserlock, RW_READER)) { in nfs_async_readahead()
1398 mutex_enter(&rp->r_statelock); in nfs_async_readahead()
1399 rp->r_count++; in nfs_async_readahead()
1400 mutex_exit(&rp->r_statelock); in nfs_async_readahead()
1401 nfs_rw_exit(&rp->r_lkserlock); in nfs_async_readahead()
1453 mutex_enter(&rp->r_statelock); in nfs_async_readahead()
1454 rp->r_count--; in nfs_async_readahead()
1455 cv_broadcast(&rp->r_cv); in nfs_async_readahead()
1456 mutex_exit(&rp->r_statelock); in nfs_async_readahead()
1468 rnode_t *rp; in nfs_async_putapage() local
1475 rp = VTOR(vp); in nfs_async_putapage()
1476 ASSERT(rp->r_count > 0); in nfs_async_putapage()
1528 mutex_enter(&rp->r_statelock); in nfs_async_putapage()
1529 rp->r_count++; in nfs_async_putapage()
1530 rp->r_awcount++; in nfs_async_putapage()
1531 mutex_exit(&rp->r_statelock); in nfs_async_putapage()
1590 rnode_t *rp; in nfs_async_pageio() local
1597 rp = VTOR(vp); in nfs_async_pageio()
1598 ASSERT(rp->r_count > 0); in nfs_async_pageio()
1650 mutex_enter(&rp->r_statelock); in nfs_async_pageio()
1651 rp->r_count++; in nfs_async_pageio()
1652 rp->r_awcount++; in nfs_async_pageio()
1653 mutex_exit(&rp->r_statelock); in nfs_async_pageio()
1722 rnode_t *rp; in nfs_async_readdir() local
1726 rp = VTOR(vp); in nfs_async_readdir()
1727 ASSERT(rp->r_freef == NULL); in nfs_async_readdir()
1773 mutex_enter(&rp->r_statelock); in nfs_async_readdir()
1774 rp->r_count++; in nfs_async_readdir()
1775 mutex_exit(&rp->r_statelock); in nfs_async_readdir()
1797 mutex_enter(&rp->r_statelock); in nfs_async_readdir()
1811 mutex_exit(&rp->r_statelock); in nfs_async_readdir()
1819 rnode_t *rp; in nfs_async_commit() local
1824 rp = VTOR(vp); in nfs_async_commit()
1874 mutex_enter(&rp->r_statelock); in nfs_async_commit()
1875 rp->r_count++; in nfs_async_commit()
1876 mutex_exit(&rp->r_statelock); in nfs_async_commit()
1941 rnode_t *rp = VTOR(vp); in nfs_async_inactive() local
1951 mutex_enter(&rp->r_statelock); in nfs_async_inactive()
1952 if (rp->r_unldvp != NULL) { in nfs_async_inactive()
1957 unldvp = rp->r_unldvp; in nfs_async_inactive()
1958 rp->r_unldvp = NULL; in nfs_async_inactive()
1959 unlname = rp->r_unlname; in nfs_async_inactive()
1960 rp->r_unlname = NULL; in nfs_async_inactive()
1961 unlcred = rp->r_unlcred; in nfs_async_inactive()
1962 rp->r_unlcred = NULL; in nfs_async_inactive()
1963 mutex_exit(&rp->r_statelock); in nfs_async_inactive()
1969 mutex_exit(&rp->r_statelock); in nfs_async_inactive()
2237 writerp(rnode_t *rp, caddr_t base, int tcount, struct uio *uio, int pgcreated) in writerp() argument
2246 vnode_t *vp = RTOV(rp); in writerp()
2249 ASSERT(nfs_rw_lock_held(&rp->r_rwlock, RW_WRITER)); in writerp()
2281 mutex_enter(&rp->r_statelock); in writerp()
2290 (n == PAGESIZE || ((offset + n) >= rp->r_size))); in writerp()
2292 mutex_exit(&rp->r_statelock); in writerp()
2323 ASSERT(!(rp->r_flags & RMODINPROGRESS)); in writerp()
2324 mutex_enter(&rp->r_statelock); in writerp()
2325 rp->r_flags |= RMODINPROGRESS; in writerp()
2326 rp->r_modaddr = (offset & MAXBMASK); in writerp()
2327 mutex_exit(&rp->r_statelock); in writerp()
2347 mutex_enter(&rp->r_statelock); in writerp()
2348 if (rp->r_size < uio->uio_loffset) in writerp()
2349 rp->r_size = uio->uio_loffset; in writerp()
2350 rp->r_flags &= ~RMODINPROGRESS; in writerp()
2351 rp->r_flags |= RDIRTY; in writerp()
2352 mutex_exit(&rp->r_statelock); in writerp()
2399 rnode_t *rp; in nfs_putpages() local
2408 rp = VTOR(vp); in nfs_putpages()
2409 ASSERT(rp->r_count > 0); in nfs_putpages()
2427 if ((rp->r_flags & ROUTOFSPACE) || in nfs_putpages()
2444 (rp->r_flags & RDIRTY)) { in nfs_putpages()
2445 mutex_enter(&rp->r_statelock); in nfs_putpages()
2446 rdirty = (rp->r_flags & RDIRTY); in nfs_putpages()
2447 rp->r_flags &= ~RDIRTY; in nfs_putpages()
2448 mutex_exit(&rp->r_statelock); in nfs_putpages()
2450 mutex_enter(&rp->r_statelock); in nfs_putpages()
2451 if (rp->r_flags & RDIRTY && rp->r_awcount == 0) { in nfs_putpages()
2452 rdirty = (rp->r_flags & RDIRTY); in nfs_putpages()
2453 rp->r_flags &= ~RDIRTY; in nfs_putpages()
2455 mutex_exit(&rp->r_statelock); in nfs_putpages()
2463 error = pvn_vplist_dirty(vp, off, rp->r_putapage, in nfs_putpages()
2473 mutex_enter(&rp->r_statelock); in nfs_putpages()
2474 rp->r_flags |= RDIRTY; in nfs_putpages()
2475 mutex_exit(&rp->r_statelock); in nfs_putpages()
2487 mutex_enter(&rp->r_statelock); in nfs_putpages()
2488 for (io_off = off; io_off < eoff && io_off < rp->r_size; in nfs_putpages()
2490 mutex_exit(&rp->r_statelock); in nfs_putpages()
2509 err = (*rp->r_putapage)(vp, pp, &io_off, in nfs_putpages()
2521 mutex_enter(&rp->r_statelock); in nfs_putpages()
2523 mutex_exit(&rp->r_statelock); in nfs_putpages()
2532 rnode_t *rp; in nfs_invalidate_pages() local
2534 rp = VTOR(vp); in nfs_invalidate_pages()
2535 mutex_enter(&rp->r_statelock); in nfs_invalidate_pages()
2536 while (rp->r_flags & RTRUNCATE) in nfs_invalidate_pages()
2537 cv_wait(&rp->r_cv, &rp->r_statelock); in nfs_invalidate_pages()
2538 rp->r_flags |= RTRUNCATE; in nfs_invalidate_pages()
2540 rp->r_flags &= ~RDIRTY; in nfs_invalidate_pages()
2541 if (!(rp->r_flags & RSTALE)) in nfs_invalidate_pages()
2542 rp->r_error = 0; in nfs_invalidate_pages()
2544 rp->r_truncaddr = off; in nfs_invalidate_pages()
2545 mutex_exit(&rp->r_statelock); in nfs_invalidate_pages()
2546 (void) pvn_vplist_dirty(vp, off, rp->r_putapage, in nfs_invalidate_pages()
2548 mutex_enter(&rp->r_statelock); in nfs_invalidate_pages()
2549 rp->r_flags &= ~RTRUNCATE; in nfs_invalidate_pages()
2550 cv_broadcast(&rp->r_cv); in nfs_invalidate_pages()
2551 mutex_exit(&rp->r_statelock); in nfs_invalidate_pages()
2969 rnode_t *rp = VTOR(vp); in nfs_lockcompletion() local
2971 ASSERT(nfs_rw_lock_held(&rp->r_lkserlock, RW_WRITER)); in nfs_lockcompletion()
3033 rnode_t *rp; in nfs_add_locking_id() local
3065 rp = VTOR(vp); in nfs_add_locking_id()
3066 mutex_enter(&rp->r_statelock); in nfs_add_locking_id()
3072 ASSERT(rp->r_flags & RHASHED); in nfs_add_locking_id()
3073 lmplp = &(rp->r_lmpl); in nfs_add_locking_id()
3074 for (cur = rp->r_lmpl; cur != (lmpl_t *)NULL; cur = cur->lmpl_next) { in nfs_add_locking_id()
3110 for (cur = rp->r_lmpl; cur != (lmpl_t *)NULL; in nfs_add_locking_id()
3130 mutex_exit(&rp->r_statelock); in nfs_add_locking_id()
3144 rnode_t *rp; in nfs_remove_locking_id() local
3149 rp = VTOR(vp); in nfs_remove_locking_id()
3151 mutex_enter(&rp->r_statelock); in nfs_remove_locking_id()
3152 ASSERT(rp->r_flags & RHASHED); in nfs_remove_locking_id()
3153 lmplp = &(rp->r_lmpl); in nfs_remove_locking_id()
3162 for (cur = rp->r_lmpl; cur != (lmpl_t *)NULL; cur = cur->lmpl_next) { in nfs_remove_locking_id()
3190 for (cur = rp->r_lmpl; cur != (lmpl_t *)NULL; in nfs_remove_locking_id()
3213 mutex_exit(&rp->r_statelock); in nfs_remove_locking_id()
3363 nfs_find_and_delete_delmapcall(rnode_t *rp, int *errp) in nfs_find_and_delete_delmapcall() argument
3371 mutex_enter(&rp->r_statelock); in nfs_find_and_delete_delmapcall()
3372 if (!(rp->r_flags & RDELMAPLIST)) { in nfs_find_and_delete_delmapcall()
3374 list_create(&rp->r_indelmap, sizeof (nfs_delmapcall_t), in nfs_find_and_delete_delmapcall()
3376 rp->r_flags |= RDELMAPLIST; in nfs_find_and_delete_delmapcall()
3377 mutex_exit(&rp->r_statelock); in nfs_find_and_delete_delmapcall()
3381 for (delmap_call = list_head(&rp->r_indelmap); in nfs_find_and_delete_delmapcall()
3383 delmap_call = list_next(&rp->r_indelmap, delmap_call)) { in nfs_find_and_delete_delmapcall()
3387 list_remove(&rp->r_indelmap, delmap_call); in nfs_find_and_delete_delmapcall()
3388 mutex_exit(&rp->r_statelock); in nfs_find_and_delete_delmapcall()
3394 mutex_exit(&rp->r_statelock); in nfs_find_and_delete_delmapcall()