Lines Matching refs:vp

81 #define	ISROFILE(vp)	\  argument
82 ((vp)->v_type != VCHR && (vp)->v_type != VBLK && \
83 (vp)->v_type != VFIFO && vn_is_readonly(vp))
85 #define VOPSTATS_UPDATE(vp, counter) ((void)vp) argument
86 #define VOPSTATS_UPDATE_IO(vp, counter, bytecounter, bytesval) \ argument
87 ((void)vp, (void)bytesval)
88 #define VOPXID_MAP_CR(vp, cr) ((void)vp) argument
316 struct vnode *vp, in vn_rdwr() argument
331 if (rw == UIO_WRITE && ISROFILE(vp)) in vn_rdwr()
337 VOPXID_MAP_CR(vp, cr); in vn_rdwr()
352 if (nbl_need_check(vp)) { in vn_rdwr()
355 nbl_start_crit(vp, RW_READER); in vn_rdwr()
357 error = nbl_svmand(vp, cr, &svmand); in vn_rdwr()
360 if (nbl_conflict(vp, rw == UIO_WRITE ? NBL_WRITE : NBL_READ, in vn_rdwr()
367 (void) VOP_RWLOCK(vp, in vn_rdwr()
372 error = VOP_WRITE(vp, &uio, ioflag, cr, NULL); in vn_rdwr()
376 error = VOP_READ(vp, &uio, ioflag, cr, NULL); in vn_rdwr()
378 VOP_RWUNLOCK(vp, in vn_rdwr()
387 nbl_end_crit(vp); in vn_rdwr()
396 vn_hold(struct vnode *vp) in vn_hold() argument
398 mutex_enter(&vp->v_lock); in vn_hold()
399 (vp)->v_count++; in vn_hold()
400 mutex_exit(&vp->v_lock); in vn_hold()
408 vn_rele(vnode_t *vp) in vn_rele() argument
410 VERIFY(vp->v_count > 0); in vn_rele()
411 mutex_enter(&vp->v_lock); in vn_rele()
412 if (vp->v_count == 1) { in vn_rele()
413 mutex_exit(&vp->v_lock); in vn_rele()
414 VOP_INACTIVE(vp, CRED(), NULL); in vn_rele()
417 VN_RELE_LOCKED(vp); in vn_rele()
418 mutex_exit(&vp->v_lock); in vn_rele()
468 vn_vfswlock_wait(vnode_t *vp) in vn_vfswlock_wait() argument
471 ASSERT(vp != NULL); in vn_vfswlock_wait()
479 vn_vfsrlock_wait(vnode_t *vp) in vn_vfsrlock_wait() argument
482 ASSERT(vp != NULL); in vn_vfsrlock_wait()
494 vn_vfswlock(vnode_t *vp) in vn_vfswlock() argument
497 if (vp == NULL) in vn_vfswlock()
507 vn_vfsrlock(vnode_t *vp) in vn_vfsrlock() argument
510 if (vp == NULL) in vn_vfsrlock()
520 vn_vfsunlock(vnode_t *vp) in vn_vfsunlock() argument
527 vn_vfswlock_held(vnode_t *vp) in vn_vfswlock_held() argument
531 ASSERT(vp != NULL); in vn_vfswlock_held()
583 struct vnode *vp = buf; in vn_cache_constructor() local
585 bzero(vp, sizeof (*vp)); in vn_cache_constructor()
586 mutex_init(&vp->v_lock, NULL, MUTEX_DEFAULT, NULL); in vn_cache_constructor()
587 rw_init(&vp->v_nbllock, NULL, RW_DEFAULT, NULL); in vn_cache_constructor()
588 vp->v_path = vn_vpath_empty; in vn_cache_constructor()
589 vp->v_fd = -1; in vn_cache_constructor()
590 vp->v_st_dev = NODEV; in vn_cache_constructor()
599 struct vnode *vp; in vn_cache_destructor() local
601 vp = buf; in vn_cache_destructor()
603 rw_destroy(&vp->v_nbllock); in vn_cache_destructor()
604 mutex_destroy(&vp->v_lock); in vn_cache_destructor()
626 vn_recycle(vnode_t *vp) in vn_recycle() argument
628 VERIFY(vp->v_path != NULL); in vn_recycle()
634 vp->v_rdcnt = 0; in vn_recycle()
635 vp->v_wrcnt = 0; in vn_recycle()
641 if (vp->v_path != vn_vpath_empty) { in vn_recycle()
642 kmem_free(vp->v_path, strlen(vp->v_path) + 1); in vn_recycle()
643 vp->v_path = vn_vpath_empty; in vn_recycle()
653 vn_reinit(vnode_t *vp) in vn_reinit() argument
655 vp->v_count = 1; in vn_reinit()
657 vp->v_vfsp = NULL; in vn_reinit()
658 vp->v_stream = NULL; in vn_reinit()
659 vp->v_vfsmountedhere = NULL; in vn_reinit()
660 vp->v_flag = 0; in vn_reinit()
661 vp->v_type = VNON; in vn_reinit()
662 vp->v_rdev = NODEV; in vn_reinit()
664 vp->v_xattrdir = NULL; in vn_reinit()
671 if (vp->v_path == NULL) { in vn_reinit()
672 vp->v_path = vn_vpath_empty; in vn_reinit()
676 vn_recycle(vp); in vn_reinit()
682 vnode_t *vp; in vn_alloc() local
684 vp = kmem_cache_alloc(vn_cache, kmflag); in vn_alloc()
686 if (vp != NULL) { in vn_alloc()
689 vn_reinit(vp); in vn_alloc()
692 return (vp); in vn_alloc()
696 vn_free(vnode_t *vp) in vn_free() argument
699 ASSERT(vp != rootdir); in vn_free()
706 ASSERT((vp->v_count == 0) || (vp->v_count == 1)); in vn_free()
707 VERIFY(vp->v_path != NULL); in vn_free()
708 if (vp->v_path != vn_vpath_empty) { in vn_free()
709 kmem_free(vp->v_path, strlen(vp->v_path) + 1); in vn_free()
710 vp->v_path = vn_vpath_empty; in vn_free()
716 kmem_cache_free(vn_cache, vp); in vn_free()
723 vn_reclaim(vnode_t *vp) in vn_reclaim() argument
725 vfs_t *vfsp = vp->v_vfsp; in vn_reclaim()
731 (void) VFS_VNSTATE(vfsp, vp, VNTRANS_RECLAIMED); in vn_reclaim()
735 vn_idle(vnode_t *vp) in vn_idle() argument
737 vfs_t *vfsp = vp->v_vfsp; in vn_idle()
743 (void) VFS_VNSTATE(vfsp, vp, VNTRANS_IDLED); in vn_idle()
746 vn_exists(vnode_t *vp) in vn_exists() argument
748 vfs_t *vfsp = vp->v_vfsp; in vn_exists()
754 (void) VFS_VNSTATE(vfsp, vp, VNTRANS_EXISTS); in vn_exists()
758 vn_invalid(vnode_t *vp) in vn_invalid() argument
771 vn_is_readonly(vnode_t *vp) in vn_is_readonly() argument
773 return (vp->v_vfsp->vfs_flag & VFS_RDONLY); in vn_is_readonly()
777 vn_has_flocks(vnode_t *vp) in vn_has_flocks() argument
783 vn_has_mandatory_locks(vnode_t *vp, int mode) in vn_has_mandatory_locks() argument
789 vn_has_cached_data(vnode_t *vp) in vn_has_cached_data() argument
800 vn_ismntpt(vnode_t *vp) in vn_ismntpt() argument
802 return (vp->v_vfsmountedhere != NULL); in vn_ismntpt()
807 vn_mountedvfs(vnode_t *vp) in vn_mountedvfs() argument
809 return (vp->v_vfsmountedhere); in vn_mountedvfs()
817 vn_in_dnlc(vnode_t *vp) in vn_in_dnlc() argument
834 vnode_t *vp, in vn_has_other_opens() argument
838 ASSERT(vp != NULL); in vn_has_other_opens()
842 if (vp->v_wrcnt > 1) in vn_has_other_opens()
846 if ((vp->v_rdcnt > 1) || (vp->v_wrcnt > 1)) in vn_has_other_opens()
850 if ((vp->v_rdcnt > 1) && (vp->v_wrcnt > 1)) in vn_has_other_opens()
854 if (vp->v_rdcnt > 1) in vn_has_other_opens()
870 vnode_t *vp, in vn_is_opened() argument
874 ASSERT(vp != NULL); in vn_is_opened()
878 if (vp->v_wrcnt) in vn_is_opened()
882 if (vp->v_rdcnt && vp->v_wrcnt) in vn_is_opened()
886 if (vp->v_rdcnt || vp->v_wrcnt) in vn_is_opened()
890 if (vp->v_rdcnt) in vn_is_opened()
904 vnode_t *vp, in vn_is_mapped() argument
914 vn_setops(vnode_t *vp, vnodeops_t *vnodeops) in vn_setops() argument
917 ASSERT(vp != NULL); in vn_setops()
920 vp->v_op = vnodeops; in vn_setops()
927 vn_getops(vnode_t *vp) in vn_getops() argument
930 ASSERT(vp != NULL); in vn_getops()
932 return (vp->v_op); in vn_getops()
940 vn_matchops(vnode_t *vp, vnodeops_t *vnodeops) in vn_matchops() argument
942 return (vn_getops(vp) == vnodeops); in vn_matchops()
953 vn_updatepath(vnode_t *pvp, vnode_t *vp, const char *name) in vn_updatepath() argument
973 vnode_t *vp = *vpp; in fop_open() local
975 VN_HOLD(vp); in fop_open()
987 VOPXID_MAP_CR(vp, cr); in fop_open()
996 VOPSTATS_UPDATE(vp, open); in fop_open()
997 if ((vp->v_type == VREG) && (mode & FREAD)) in fop_open()
998 atomic_dec_32(&vp->v_rdcnt); in fop_open()
999 if ((vp->v_type == VREG) && (mode & FWRITE)) in fop_open()
1000 atomic_dec_32(&vp->v_wrcnt); in fop_open()
1011 if (*vpp != vp && *vpp != NULL) { in fop_open()
1015 if ((vp->v_type == VREG) && (mode & FREAD)) in fop_open()
1016 atomic_dec_32(&vp->v_rdcnt); in fop_open()
1019 if ((vp->v_type == VREG) && (mode & FWRITE)) in fop_open()
1020 atomic_dec_32(&vp->v_wrcnt); in fop_open()
1023 VN_RELE(vp); in fop_open()
1029 vnode_t *vp, in fop_close() argument
1038 VOPXID_MAP_CR(vp, cr); in fop_close()
1040 err = (*(vp)->v_op->vop_close)(vp, flag, count, offset, cr, ct); in fop_close()
1041 VOPSTATS_UPDATE(vp, close); in fop_close()
1046 if ((vp->v_type == VREG) && (count == 1)) { in fop_close()
1048 ASSERT(vp->v_rdcnt > 0); in fop_close()
1049 atomic_dec_32(&vp->v_rdcnt); in fop_close()
1052 ASSERT(vp->v_wrcnt > 0); in fop_close()
1053 atomic_dec_32(&vp->v_wrcnt); in fop_close()
1061 vnode_t *vp, in fop_read() argument
1070 VOPXID_MAP_CR(vp, cr); in fop_read()
1072 err = (*(vp)->v_op->vop_read)(vp, uiop, ioflag, cr, ct); in fop_read()
1073 VOPSTATS_UPDATE_IO(vp, read, in fop_read()
1080 vnode_t *vp, in fop_write() argument
1089 VOPXID_MAP_CR(vp, cr); in fop_write()
1091 err = (*(vp)->v_op->vop_write)(vp, uiop, ioflag, cr, ct); in fop_write()
1092 VOPSTATS_UPDATE_IO(vp, write, in fop_write()
1099 vnode_t *vp, in fop_ioctl() argument
1109 VOPXID_MAP_CR(vp, cr); in fop_ioctl()
1111 err = (*(vp)->v_op->vop_ioctl)(vp, cmd, arg, flag, cr, rvalp, ct); in fop_ioctl()
1112 VOPSTATS_UPDATE(vp, ioctl); in fop_ioctl()
1118 vnode_t *vp, in fop_setfl() argument
1126 VOPXID_MAP_CR(vp, cr); in fop_setfl()
1128 err = (*(vp)->v_op->vop_setfl)(vp, oflags, nflags, cr, ct); in fop_setfl()
1129 VOPSTATS_UPDATE(vp, setfl); in fop_setfl()
1135 vnode_t *vp, in fop_getattr() argument
1143 VOPXID_MAP_CR(vp, cr); in fop_getattr()
1149 if (vfs_has_feature(vp->v_vfsp, VFSFT_XVATTR) == 0) { in fop_getattr()
1158 vfs_has_feature(vp->v_vfsp, VFSFT_ACEMASKONACCESS) == 0) { in fop_getattr()
1161 err = (*(vp)->v_op->vop_getattr)(vp, vap, flags, cr, ct); in fop_getattr()
1162 VOPSTATS_UPDATE(vp, getattr); in fop_getattr()
1168 vnode_t *vp, in fop_setattr() argument
1176 VOPXID_MAP_CR(vp, cr); in fop_setattr()
1182 if (vfs_has_feature(vp->v_vfsp, VFSFT_XVATTR) == 0) { in fop_setattr()
1191 vfs_has_feature(vp->v_vfsp, VFSFT_ACEMASKONACCESS) == 0) { in fop_setattr()
1194 err = (*(vp)->v_op->vop_setattr)(vp, vap, flags, cr, ct); in fop_setattr()
1195 VOPSTATS_UPDATE(vp, setattr); in fop_setattr()
1201 vnode_t *vp, in fop_access() argument
1210 vfs_has_feature(vp->v_vfsp, VFSFT_ACEMASKONACCESS) == 0) { in fop_access()
1214 VOPXID_MAP_CR(vp, cr); in fop_access()
1216 err = (*(vp)->v_op->vop_access)(vp, mode, flags, cr, ct); in fop_access()
1217 VOPSTATS_UPDATE(vp, access); in fop_access()
1464 vnode_t *vp, in fop_readdir() argument
1479 vfs_has_feature(vp->v_vfsp, VFSFT_DIRENTFLAGS) == 0) in fop_readdir()
1482 VOPXID_MAP_CR(vp, cr); in fop_readdir()
1484 err = (*(vp)->v_op->vop_readdir)(vp, uiop, cr, eofp, ct, flags); in fop_readdir()
1485 VOPSTATS_UPDATE_IO(vp, readdir, in fop_readdir()
1530 vnode_t *vp, in fop_readlink() argument
1537 VOPXID_MAP_CR(vp, cr); in fop_readlink()
1539 err = (*(vp)->v_op->vop_readlink)(vp, uiop, cr, ct); in fop_readlink()
1540 VOPSTATS_UPDATE(vp, readlink); in fop_readlink()
1546 vnode_t *vp, in fop_fsync() argument
1553 VOPXID_MAP_CR(vp, cr); in fop_fsync()
1555 err = (*(vp)->v_op->vop_fsync)(vp, syncflag, cr, ct); in fop_fsync()
1556 VOPSTATS_UPDATE(vp, fsync); in fop_fsync()
1562 vnode_t *vp, in fop_inactive() argument
1567 VOPSTATS_UPDATE(vp, inactive); in fop_inactive()
1569 VOPXID_MAP_CR(vp, cr); in fop_inactive()
1571 (*(vp)->v_op->vop_inactive)(vp, cr, ct); in fop_inactive()
1576 vnode_t *vp, in fop_fid() argument
1582 err = (*(vp)->v_op->vop_fid)(vp, fidp, ct); in fop_fid()
1583 VOPSTATS_UPDATE(vp, fid); in fop_fid()
1589 vnode_t *vp, in fop_rwlock() argument
1595 ret = ((*(vp)->v_op->vop_rwlock)(vp, write_lock, ct)); in fop_rwlock()
1596 VOPSTATS_UPDATE(vp, rwlock); in fop_rwlock()
1602 vnode_t *vp, in fop_rwunlock() argument
1606 (*(vp)->v_op->vop_rwunlock)(vp, write_lock, ct); in fop_rwunlock()
1607 VOPSTATS_UPDATE(vp, rwunlock); in fop_rwunlock()
1612 vnode_t *vp, in fop_seek() argument
1619 err = (*(vp)->v_op->vop_seek)(vp, ooff, noffp, ct); in fop_seek()
1620 VOPSTATS_UPDATE(vp, seek); in fop_seek()
1639 vnode_t *vp, in fop_frlock() argument
1650 VOPXID_MAP_CR(vp, cr); in fop_frlock()
1652 err = (*(vp)->v_op->vop_frlock) in fop_frlock()
1653 (vp, cmd, bfp, flag, offset, flk_cbp, cr, ct); in fop_frlock()
1654 VOPSTATS_UPDATE(vp, frlock); in fop_frlock()
1660 vnode_t *vp, in fop_space() argument
1670 VOPXID_MAP_CR(vp, cr); in fop_space()
1672 err = (*(vp)->v_op->vop_space)(vp, cmd, bfp, flag, offset, cr, ct); in fop_space()
1673 VOPSTATS_UPDATE(vp, space); in fop_space()
1679 vnode_t *vp, in fop_realvp() argument
1685 err = (*(vp)->v_op->vop_realvp)(vp, vpp, ct); in fop_realvp()
1686 VOPSTATS_UPDATE(vp, realvp); in fop_realvp()
1692 vnode_t *vp, in fop_getpage() argument
1706 VOPXID_MAP_CR(vp, cr); in fop_getpage()
1708 err = (*(vp)->v_op->vop_getpage) in fop_getpage()
1709 (vp, off, len, protp, plarr, plsz, seg, addr, rw, cr, ct); in fop_getpage()
1710 VOPSTATS_UPDATE(vp, getpage); in fop_getpage()
1716 vnode_t *vp, in fop_putpage() argument
1725 VOPXID_MAP_CR(vp, cr); in fop_putpage()
1727 err = (*(vp)->v_op->vop_putpage)(vp, off, len, flags, cr, ct); in fop_putpage()
1728 VOPSTATS_UPDATE(vp, putpage); in fop_putpage()
1734 vnode_t *vp, in fop_map() argument
1747 VOPXID_MAP_CR(vp, cr); in fop_map()
1749 err = (*(vp)->v_op->vop_map) in fop_map()
1750 (vp, off, as, addrp, len, prot, maxprot, flags, cr, ct); in fop_map()
1751 VOPSTATS_UPDATE(vp, map); in fop_map()
1757 vnode_t *vp, in fop_addmap() argument
1770 VOPXID_MAP_CR(vp, cr); in fop_addmap()
1772 error = (*(vp)->v_op->vop_addmap) in fop_addmap()
1773 (vp, off, as, addr, len, prot, maxprot, flags, cr, ct); in fop_addmap()
1775 VOPSTATS_UPDATE(vp, addmap); in fop_addmap()
1781 vnode_t *vp, in fop_delmap() argument
1794 VOPXID_MAP_CR(vp, cr); in fop_delmap()
1796 error = (*(vp)->v_op->vop_delmap) in fop_delmap()
1797 (vp, off, as, addr, len, prot, maxprot, flags, cr, ct); in fop_delmap()
1799 VOPSTATS_UPDATE(vp, delmap); in fop_delmap()
1806 vnode_t *vp, in fop_poll() argument
1815 err = (*(vp)->v_op->vop_poll)(vp, events, anyyet, reventsp, phpp, ct); in fop_poll()
1816 VOPSTATS_UPDATE(vp, poll); in fop_poll()
1822 vnode_t *vp, in fop_dump() argument
1834 err = (*(vp)->v_op->vop_dump)(vp, addr, lbdn, dblks, ct); in fop_dump()
1835 VOPSTATS_UPDATE(vp, dump); in fop_dump()
1841 vnode_t *vp, in fop_pathconf() argument
1849 VOPXID_MAP_CR(vp, cr); in fop_pathconf()
1851 err = (*(vp)->v_op->vop_pathconf)(vp, cmd, valp, cr, ct); in fop_pathconf()
1852 VOPSTATS_UPDATE(vp, pathconf); in fop_pathconf()
1858 vnode_t *vp, in fop_pageio() argument
1868 VOPXID_MAP_CR(vp, cr); in fop_pageio()
1870 err = (*(vp)->v_op->vop_pageio)(vp, pp, io_off, io_len, flags, cr, ct); in fop_pageio()
1871 VOPSTATS_UPDATE(vp, pageio); in fop_pageio()
1877 vnode_t *vp, in fop_dumpctl() argument
1883 err = (*(vp)->v_op->vop_dumpctl)(vp, action, blkp, ct); in fop_dumpctl()
1884 VOPSTATS_UPDATE(vp, dumpctl); in fop_dumpctl()
1890 vnode_t *vp, in fop_dispose() argument
1898 VOPSTATS_UPDATE(vp, dispose); in fop_dispose()
1900 VOPXID_MAP_CR(vp, cr); in fop_dispose()
1902 (*(vp)->v_op->vop_dispose)(vp, pp, flag, dn, cr, ct); in fop_dispose()
1907 vnode_t *vp, in fop_setsecattr() argument
1915 VOPXID_MAP_CR(vp, cr); in fop_setsecattr()
1922 vfs_has_feature(vp->v_vfsp, VFSFT_ACEMASKONACCESS) == 0) { in fop_setsecattr()
1925 err = (*(vp)->v_op->vop_setsecattr) (vp, vsap, flag, cr, ct); in fop_setsecattr()
1926 VOPSTATS_UPDATE(vp, setsecattr); in fop_setsecattr()
1932 vnode_t *vp, in fop_getsecattr() argument
1945 vfs_has_feature(vp->v_vfsp, VFSFT_ACEMASKONACCESS) == 0) { in fop_getsecattr()
1949 VOPXID_MAP_CR(vp, cr); in fop_getsecattr()
1951 err = (*(vp)->v_op->vop_getsecattr) (vp, vsap, flag, cr, ct); in fop_getsecattr()
1952 VOPSTATS_UPDATE(vp, getsecattr); in fop_getsecattr()
1958 vnode_t *vp, in fop_shrlock() argument
1967 VOPXID_MAP_CR(vp, cr); in fop_shrlock()
1969 err = (*(vp)->v_op->vop_shrlock)(vp, cmd, shr, flag, cr, ct); in fop_shrlock()
1970 VOPSTATS_UPDATE(vp, shrlock); in fop_shrlock()
1975 fop_vnevent(vnode_t *vp, vnevent_t vnevent, vnode_t *dvp, char *fnm, in fop_vnevent() argument
1980 err = (*(vp)->v_op->vop_vnevent)(vp, vnevent, dvp, fnm, ct); in fop_vnevent()
1981 VOPSTATS_UPDATE(vp, vnevent); in fop_vnevent()
2004 vn_is_reparse(vnode_t *vp, cred_t *cr, caller_context_t *ct) in vn_is_reparse() argument
2009 if ((vp->v_type != VLNK) || in vn_is_reparse()
2010 !(vfs_has_feature(vp->v_vfsp, VFSFT_XVATTR))) in vn_is_reparse()
2018 if (VOP_GETATTR(vp, &xvattr.xva_vattr, 0, cr, ct)) in vn_is_reparse()