Lines Matching refs:rp

108 	rnode_t *rp;
111 rp = VTOR(vp);
112 if (rp->r_serial != NULL && rp->r_serial != curthread) {
113 mutex_enter(&rp->r_statelock);
115 while (rp->r_serial != NULL) {
116 if (!cv_wait_sig(&rp->r_cv, &rp->r_statelock)) {
118 mutex_exit(&rp->r_statelock);
123 mutex_exit(&rp->r_statelock);
188 rnode_t *rp;
197 rp = VTOR(vp);
198 mutex_enter(&rp->r_statelock);
201 !(rp->r_flags & RINDNLCPURGE)) {
207 rp->r_flags |= RINDNLCPURGE;
208 mutex_exit(&rp->r_statelock);
210 mutex_enter(&rp->r_statelock);
211 if (rp->r_flags & RINDNLCPURGE)
212 rp->r_flags &= ~RINDNLCPURGE;
218 contents = rp->r_symlink.contents;
219 size = rp->r_symlink.size;
220 rp->r_symlink.contents = NULL;
221 mutex_exit(&rp->r_statelock);
234 mutex_enter(&rp->r_statelock);
235 if (!rp->r_error)
236 rp->r_error = error;
237 mutex_exit(&rp->r_statelock);
244 if (HAVE_RDDIR_CACHE(rp))
254 rnode_t *rp;
258 rp = VTOR(vp);
260 mutex_enter(&rp->r_statelock);
261 rp->r_direof = NULL;
262 rp->r_flags &= ~RLOOKUP;
263 rp->r_flags |= RREADDIRPLUS;
264 rdc = avl_first(&rp->r_dir);
266 nrdc = AVL_NEXT(&rp->r_dir, rdc);
267 avl_remove(&rp->r_dir, rdc);
271 mutex_exit(&rp->r_statelock);
374 rnode_t *rp;
378 rp = VTOR(vp);
379 mutex_enter(&rp->r_statelock);
380 if (rp->r_mtime <= t)
382 mutex_exit(&rp->r_statelock);
400 rnode_t *rp;
404 rp = VTOR(vp);
405 mutex_enter(&rp->r_statelock);
406 if (rp->r_mtime <= t)
408 mutex_exit(&rp->r_statelock);
476 rnode_t *rp;
485 rp = VTOR(vp);
487 mutex_enter(&rp->r_statelock);
489 if (rp->r_serial != curthread) {
495 while (rp->r_serial != NULL) {
496 if (!cv_wait_sig(&rp->r_cv, &rp->r_statelock)) {
497 mutex_exit(&rp->r_statelock);
508 if (rp->r_mtime > t) {
509 if (!CACHE_VALID(rp, vap->va_mtime, vap->va_size))
510 PURGE_ATTRCACHE_LOCKED(rp);
511 mutex_exit(&rp->r_statelock);
522 if (!(rp->r_flags & RWRITEATTR)) {
523 if (!CACHE_VALID(rp, vap->va_mtime, vap->va_size))
526 if (rp->r_attr.va_ctime.tv_sec != vap->va_ctime.tv_sec ||
527 rp->r_attr.va_ctime.tv_nsec != vap->va_ctime.tv_nsec)
533 preattr_rsize = rp->r_size;
544 if ((vp->v_type == VREG) && (rp->r_size != preattr_rsize)) {
554 if (mtime_changed && !(rp->r_flags & RINCACHEPURGE)) {
555 rp->r_flags |= RINCACHEPURGE;
561 mutex_exit(&rp->r_statelock);
565 rp->r_serial = curthread;
567 mutex_exit(&rp->r_statelock);
572 if ((rp->r_flags & RINCACHEPURGE) && cachepurge_set) {
573 mutex_enter(&rp->r_statelock);
574 rp->r_flags &= ~RINCACHEPURGE;
575 cv_broadcast(&rp->r_cv);
576 mutex_exit(&rp->r_statelock);
581 (void) nfs_access_purge_rp(rp);
582 if (rp->r_secattr != NULL) {
583 mutex_enter(&rp->r_statelock);
584 vsp = rp->r_secattr;
585 rp->r_secattr = NULL;
586 mutex_exit(&rp->r_statelock);
593 mutex_enter(&rp->r_statelock);
594 rp->r_serial = NULL;
595 cv_broadcast(&rp->r_cv);
596 mutex_exit(&rp->r_statelock);
619 rnode_t *rp;
628 rp = VTOR(vp);
630 mutex_enter(&rp->r_statelock);
632 if (rp->r_serial != curthread) {
638 while (rp->r_serial != NULL) {
639 if (!cv_wait_sig(&rp->r_cv, &rp->r_statelock)) {
640 mutex_exit(&rp->r_statelock);
651 if (rp->r_mtime > t) {
652 if (!CACHE_VALID(rp, avap->va_mtime, avap->va_size))
653 PURGE_ATTRCACHE_LOCKED(rp);
654 mutex_exit(&rp->r_statelock);
665 if (!(rp->r_flags & RWRITEATTR)) {
666 if (!CACHE_VALID(rp, bvap->va_mtime, bvap->va_size))
669 if (rp->r_attr.va_ctime.tv_sec != bvap->va_ctime.tv_sec ||
670 rp->r_attr.va_ctime.tv_nsec != bvap->va_ctime.tv_nsec)
676 preattr_rsize = rp->r_size;
687 if ((vp->v_type == VREG) && (rp->r_size != preattr_rsize)) {
697 if (mtime_changed && !(rp->r_flags & RINCACHEPURGE)) {
698 rp->r_flags |= RINCACHEPURGE;
704 mutex_exit(&rp->r_statelock);
708 rp->r_serial = curthread;
710 mutex_exit(&rp->r_statelock);
715 if ((rp->r_flags & RINCACHEPURGE) && cachepurge_set) {
716 mutex_enter(&rp->r_statelock);
717 rp->r_flags &= ~RINCACHEPURGE;
718 cv_broadcast(&rp->r_cv);
719 mutex_exit(&rp->r_statelock);
724 (void) nfs_access_purge_rp(rp);
725 if (rp->r_secattr != NULL) {
726 mutex_enter(&rp->r_statelock);
727 vsp = rp->r_secattr;
728 rp->r_secattr = NULL;
729 mutex_exit(&rp->r_statelock);
736 mutex_enter(&rp->r_statelock);
737 rp->r_serial = NULL;
738 cv_broadcast(&rp->r_cv);
739 mutex_exit(&rp->r_statelock);
754 rnode_t *rp;
759 rp = VTOR(vp);
761 ASSERT(MUTEX_HELD(&rp->r_statelock));
782 if (va->va_mtime.tv_sec != rp->r_attr.va_mtime.tv_sec ||
783 va->va_mtime.tv_nsec != rp->r_attr.va_mtime.tv_nsec ||
784 va->va_size != rp->r_attr.va_size)
785 rp->r_mtime = now;
790 delta = now - rp->r_mtime;
803 rp->r_attrtime = now + delta;
804 rp->r_attr = *va;
810 if (rp->r_size != va->va_size &&
812 (!(rp->r_flags & RDIRTY) && rp->r_count == 0)))
813 rp->r_size = va->va_size;
815 rp->r_flags &= ~RWRITEATTR;
826 rnode_t *rp;
829 rp = VTOR(vp);
830 mutex_enter(&rp->r_statelock);
835 *vap = rp->r_attr;
844 mutex_exit(&rp->r_statelock);
847 mutex_exit(&rp->r_statelock);
908 rnode_t *rp;
920 rp = VTOR(vp);
921 mutex_enter(&rp->r_statelock);
922 vap->va_size = rp->r_size;
923 mutex_exit(&rp->r_statelock);
988 rnode_t *rp;
1000 rp = VTOR(vp);
1001 mutex_enter(&rp->r_statelock);
1002 vap->va_size = rp->r_size;
1003 mutex_exit(&rp->r_statelock);
1193 rnode_t *rp;
1196 rp = VTOR(args->a_vp);
1197 mutex_enter(&rp->r_statelock);
1198 rp->r_count--;
1201 rp->r_awcount--;
1202 cv_broadcast(&rp->r_cv);
1203 mutex_exit(&rp->r_statelock);
1360 rnode_t *rp;
1364 rp = VTOR(vp);
1365 ASSERT(rp->r_freef == NULL);
1386 if (!nfs_rw_tryenter(&rp->r_lkserlock, RW_READER)) {
1390 mutex_enter(&rp->r_statelock);
1391 rp->r_count++;
1392 mutex_exit(&rp->r_statelock);
1393 nfs_rw_exit(&rp->r_lkserlock);
1445 mutex_enter(&rp->r_statelock);
1446 rp->r_count--;
1447 cv_broadcast(&rp->r_cv);
1448 mutex_exit(&rp->r_statelock);
1460 rnode_t *rp;
1467 rp = VTOR(vp);
1468 ASSERT(rp->r_count > 0);
1520 mutex_enter(&rp->r_statelock);
1521 rp->r_count++;
1522 rp->r_awcount++;
1523 mutex_exit(&rp->r_statelock);
1582 rnode_t *rp;
1589 rp = VTOR(vp);
1590 ASSERT(rp->r_count > 0);
1642 mutex_enter(&rp->r_statelock);
1643 rp->r_count++;
1644 rp->r_awcount++;
1645 mutex_exit(&rp->r_statelock);
1714 rnode_t *rp;
1718 rp = VTOR(vp);
1719 ASSERT(rp->r_freef == NULL);
1765 mutex_enter(&rp->r_statelock);
1766 rp->r_count++;
1767 mutex_exit(&rp->r_statelock);
1789 mutex_enter(&rp->r_statelock);
1803 mutex_exit(&rp->r_statelock);
1812 rnode_t *rp;
1817 rp = VTOR(vp);
1867 mutex_enter(&rp->r_statelock);
1868 rp->r_count++;
1869 mutex_exit(&rp->r_statelock);
1934 rnode_t *rp = VTOR(vp);
1944 mutex_enter(&rp->r_statelock);
1945 if (rp->r_unldvp != NULL) {
1950 unldvp = rp->r_unldvp;
1951 rp->r_unldvp = NULL;
1952 unlname = rp->r_unlname;
1953 rp->r_unlname = NULL;
1954 unlcred = rp->r_unlcred;
1955 rp->r_unlcred = NULL;
1956 mutex_exit(&rp->r_statelock);
1962 mutex_exit(&rp->r_statelock);
2230 writerp(rnode_t *rp, caddr_t base, int tcount, struct uio *uio, int pgcreated)
2239 vnode_t *vp = RTOV(rp);
2242 ASSERT(nfs_rw_lock_held(&rp->r_rwlock, RW_WRITER));
2274 mutex_enter(&rp->r_statelock);
2283 (n == PAGESIZE || ((offset + n) >= rp->r_size)));
2285 mutex_exit(&rp->r_statelock);
2316 ASSERT(!(rp->r_flags & RMODINPROGRESS));
2317 mutex_enter(&rp->r_statelock);
2318 rp->r_flags |= RMODINPROGRESS;
2319 rp->r_modaddr = (offset & MAXBMASK);
2320 mutex_exit(&rp->r_statelock);
2340 mutex_enter(&rp->r_statelock);
2341 if (rp->r_size < uio->uio_loffset)
2342 rp->r_size = uio->uio_loffset;
2343 rp->r_flags &= ~RMODINPROGRESS;
2344 rp->r_flags |= RDIRTY;
2345 mutex_exit(&rp->r_statelock);
2392 rnode_t *rp;
2401 rp = VTOR(vp);
2402 ASSERT(rp->r_count > 0);
2420 if ((rp->r_flags & ROUTOFSPACE) ||
2437 (rp->r_flags & RDIRTY)) {
2438 mutex_enter(&rp->r_statelock);
2439 rdirty = (rp->r_flags & RDIRTY);
2440 rp->r_flags &= ~RDIRTY;
2441 mutex_exit(&rp->r_statelock);
2443 mutex_enter(&rp->r_statelock);
2444 if (rp->r_flags & RDIRTY && rp->r_awcount == 0) {
2445 rdirty = (rp->r_flags & RDIRTY);
2446 rp->r_flags &= ~RDIRTY;
2448 mutex_exit(&rp->r_statelock);
2456 error = pvn_vplist_dirty(vp, off, rp->r_putapage,
2466 mutex_enter(&rp->r_statelock);
2467 rp->r_flags |= RDIRTY;
2468 mutex_exit(&rp->r_statelock);
2480 mutex_enter(&rp->r_statelock);
2481 for (io_off = off; io_off < eoff && io_off < rp->r_size;
2483 mutex_exit(&rp->r_statelock);
2502 err = (*rp->r_putapage)(vp, pp, &io_off,
2514 mutex_enter(&rp->r_statelock);
2516 mutex_exit(&rp->r_statelock);
2525 rnode_t *rp;
2527 rp = VTOR(vp);
2528 mutex_enter(&rp->r_statelock);
2529 while (rp->r_flags & RTRUNCATE)
2530 cv_wait(&rp->r_cv, &rp->r_statelock);
2531 rp->r_flags |= RTRUNCATE;
2533 rp->r_flags &= ~RDIRTY;
2534 if (!(rp->r_flags & RSTALE))
2535 rp->r_error = 0;
2537 rp->r_truncaddr = off;
2538 mutex_exit(&rp->r_statelock);
2539 (void) pvn_vplist_dirty(vp, off, rp->r_putapage,
2541 mutex_enter(&rp->r_statelock);
2542 rp->r_flags &= ~RTRUNCATE;
2543 cv_broadcast(&rp->r_cv);
2544 mutex_exit(&rp->r_statelock);
2959 rnode_t *rp = VTOR(vp);
2961 ASSERT(nfs_rw_lock_held(&rp->r_lkserlock, RW_WRITER));
3023 rnode_t *rp;
3055 rp = VTOR(vp);
3056 mutex_enter(&rp->r_statelock);
3062 ASSERT(rp->r_flags & RHASHED);
3063 lmplp = &(rp->r_lmpl);
3064 for (cur = rp->r_lmpl; cur != (lmpl_t *)NULL; cur = cur->lmpl_next) {
3100 for (cur = rp->r_lmpl; cur != (lmpl_t *)NULL;
3120 mutex_exit(&rp->r_statelock);
3134 rnode_t *rp;
3139 rp = VTOR(vp);
3141 mutex_enter(&rp->r_statelock);
3142 ASSERT(rp->r_flags & RHASHED);
3143 lmplp = &(rp->r_lmpl);
3152 for (cur = rp->r_lmpl; cur != (lmpl_t *)NULL; cur = cur->lmpl_next) {
3180 for (cur = rp->r_lmpl; cur != (lmpl_t *)NULL;
3203 mutex_exit(&rp->r_statelock);
3351 nfs_find_and_delete_delmapcall(rnode_t *rp, int *errp)
3359 mutex_enter(&rp->r_statelock);
3360 if (!(rp->r_flags & RDELMAPLIST)) {
3362 list_create(&rp->r_indelmap, sizeof (nfs_delmapcall_t),
3364 rp->r_flags |= RDELMAPLIST;
3365 mutex_exit(&rp->r_statelock);
3369 for (delmap_call = list_head(&rp->r_indelmap);
3371 delmap_call = list_next(&rp->r_indelmap, delmap_call)) {
3375 list_remove(&rp->r_indelmap, delmap_call);
3376 mutex_exit(&rp->r_statelock);
3382 mutex_exit(&rp->r_statelock);