Lines Matching refs:vp

350 	struct vnode *vp;
358 vp = *VOPARG_OFFSETTO(struct vnode **, offset, ap);
359 pmp = MPTOPUFFSMP(vp->v_mount);
361 DPRINTF_VERBOSE(("checkop call %s (%d), vp %p\n",
362 ap->a_desc->vdesc_name, ap->a_desc->vdesc_offset, vp));
406 DPRINTF_VERBOSE(("checkop return %s (%d), vp %p: %d\n",
407 ap->a_desc->vdesc_name, ap->a_desc->vdesc_offset, vp, rv));
485 struct vnode *vp, *dvp, *cvp;
515 vp = VPTOPP(ap->a_dvp)->pn_parent;
516 vref(vp);
518 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
521 *ap->a_vpp = vp;
563 vp = ap->a_dvp;
564 vref(vp);
565 *ap->a_vpp = vp;
630 vp = NULL;
641 vp = cvp;
648 if (vp == NULL) {
650 1, 1, &vp);
656 lookup_msg->pvnr_size, lookup_msg->pvnr_rdev, &vp);
664 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
677 update_va(vp, NULL, &lookup_msg->pvnr_va,
681 KASSERT(lookup_msg->pvnr_newnode == VPTOPP(vp)->pn_cookie);
682 *ap->a_vpp = vp;
685 cache_enter(dvp, vp, cnp);
694 VPTOPP(vp)->pn_nlookup++;
697 (VPTOPP(vp)->pn_parent != dvp))
698 update_parent(vp, dvp);
704 if (error || (cvp != vp))
872 struct vnode *vp = ap->a_vp;
873 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
877 DPRINTF(("puffs_open: vp %p, mode 0x%x\n", vp, mode));
879 if (vp->v_type == VREG && mode & FWRITE && !EXISTSOP(pmp, WRITE))
889 PUFFS_VN_OPEN, VPTOPNC(vp));
891 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_open, vp->v_data, NULL, error);
910 struct vnode *vp = ap->a_vp;
911 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
918 PUFFS_VN_CLOSE, VPTOPNC(vp));
935 struct vnode *vp = ap->a_vp;
936 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
941 switch (vp->v_type) {
945 if ((vp->v_mount->mnt_flag & MNT_RDONLY)
961 PUFFS_VN_ACCESS, VPTOPNC(vp));
963 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_access, vp->v_data, NULL, error);
971 update_va(struct vnode *vp, struct vattr *vap, struct vattr *rvap,
974 struct puffs_node *pn = VPTOPP(vp);
985 if (vp->v_type == VBLK || vp->v_type == VCHR)
986 rvap->va_size = vp->v_size;
989 if (vp->v_type == VBLK)
991 else if (vp->v_type == VCHR)
996 vap->va_fsid = vp->v_mount->mnt_stat.f_fsidx.__fsid_val[0];
1010 && vp->v_type != VBLK && vp->v_type != VCHR) {
1011 uvm_vnp_setsize(vp, rvap->va_size);
1027 update_parent(struct vnode *vp, struct vnode *dvp)
1029 struct puffs_node *pn = VPTOPP(vp);
1050 struct vnode *vp = ap->a_vp;
1051 struct mount *mp = vp->v_mount;
1054 struct puffs_node *pn = VPTOPP(vp);
1060 * setattr, write and fsync when changing vp->v_size.
1078 update_va(vp, vap, pn->pn_va_cache,
1088 PUFFS_VN_GETATTR, VPTOPNC(vp));
1090 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_getattr, vp->v_data, NULL, error);
1100 update_va(vp, vap, rvap, va_ttl, NULL, SETATTR_CHSIZE);
1114 dosetattr(struct vnode *vp, struct vattr *vap, kauth_cred_t cred, int flags)
1117 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1118 struct puffs_node *pn = vp->v_data;
1123 if ((vp->v_mount->mnt_flag & MNT_RDONLY) &&
1129 if ((vp->v_mount->mnt_flag & MNT_RDONLY)
1130 && vp->v_type == VREG && vap->va_size != VNOVAL)
1166 PUFFS_VN_SETATTR, VPTOPNC(vp));
1172 error = puffs_msg_wait2(pmp, park_setattr, vp->v_data, NULL);
1178 update_va(vp, NULL, rvap, va_ttl, NULL, flags);
1193 uvm_vnp_setsize(vp, vap->va_size);
1259 struct vnode *vp = ap->a_vp;
1260 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1265 pnode = vp->v_data;
1269 flushvncache(vp, 0, 0, false);
1272 PUFFS_VN_INACTIVE, VPTOPNC(vp));
1274 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_inactive, vp->v_data,
1297 if (PUFFS_USE_FS_TTL(pmp) && !(vp->v_vflag & VV_ROOT) && !recycle) {
1343 VOP_UNLOCK(vp);
1377 struct vnode *vp = ap->a_vp;
1378 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1379 struct puffs_node *pnode = vp->v_data;
1388 if (vp->v_vflag & VV_ROOT) {
1404 cache_purge(vp);
1408 int nlookup = VPTOPP(vp)->pn_nlookup;
1410 callreclaim(MPTOPUFFSMP(vp->v_mount), VPTOPNC(vp), nlookup);
1414 if (__predict_true(VPTOPP(vp)->pn_parent != NULL))
1415 vrele(VPTOPP(vp)->pn_parent);
1417 KASSERT(vp->v_vflag & VV_ROOT);
1420 puffs_putvnode(vp);
1421 vp->v_data = NULL;
1440 struct vnode *vp = ap->a_vp;
1441 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1491 PUFFS_VN_READDIR, VPTOPNC(vp));
1494 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_readdir, vp->v_data, NULL, error);
1502 "resid grew", VPTOPNC(vp));
1507 "too many cookies", VPTOPNC(vp));
1566 struct vnode *vp = ap->a_vp;
1567 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1568 struct puffs_node *pn = vp->v_data;
1586 PUFFS_VN_POLL, VPTOPNC(vp));
1590 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_poll, vp->v_data,
1602 flushvncache(struct vnode *vp, off_t offlo, off_t offhi, bool wait)
1604 struct puffs_node *pn = VPTOPP(vp);
1612 error = dosetattr(vp, &va, FSCRED,
1625 mutex_enter(vp->v_interlock);
1626 return VOP_PUTPAGES(vp, trunc_page(offlo), round_page(offhi), pflags);
1641 struct vnode *vp;
1646 vp = ap->a_vp;
1647 KASSERT(vp != NULL);
1648 pn = VPTOPP(vp);
1650 pmp = MPTOPUFFSMP(vp->v_mount);
1658 error = flushvncache(vp, ap->a_offlo, ap->a_offhi,
1682 mutex_enter(vp->v_interlock);
1683 if (vp->v_iflag & VI_XLOCK)
1685 mutex_exit(vp->v_interlock);
1697 PUFFS_VN_FSYNC, VPTOPNC(vp));
1699 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_fsync, vp->v_data, NULL, error);
1720 struct vnode *vp = ap->a_vp;
1721 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1729 PUFFS_VN_SEEK, VPTOPNC(vp));
1731 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_seek, vp->v_data, NULL, error);
1770 struct vnode *vp = ap->a_vp;
1772 struct puffs_node *pn = VPTOPP(vp);
1779 remove_msg->pvnr_cookie_targ = VPTOPNC(vp);
1787 if (dvp == vp)
1790 REFPN_AND_UNLOCKVP(vp, pn);
1796 RELEPN_AND_VP(vp, pn);
1892 struct vnode *vp = ap->a_vp;
1894 struct puffs_node *pn = VPTOPP(vp);
1900 rmdir_msg->pvnr_cookie_targ = VPTOPNC(vp);
1908 REFPN_AND_UNLOCKVP(vp, pn);
1915 RELEPN_AND_VP(vp, pn);
1931 struct vnode *vp = ap->a_vp;
1933 struct puffs_node *pn = VPTOPP(vp);
1939 link_msg->pvnr_cookie_targ = VPTOPNC(vp);
2043 struct vnode *vp = ap->a_vp;
2053 PUFFS_VN_READLINK, VPTOPNC(vp));
2055 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_readlink, vp->v_data, NULL, error);
2167 struct vnode *vp = ap->a_vp;
2168 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2183 if (vp->v_type == VREG && PUFFS_USE_PAGECACHE(pmp)) {
2187 if (vp->v_size <= uio->uio_offset) {
2191 vp->v_size - uio->uio_offset);
2195 error = ubc_uiomove(&vp->v_uobj, uio, bytelen, advice,
2196 UBC_READ | UBC_PARTIALOK | UBC_UNMAP_FLAG(vp));
2201 if ((vp->v_mount->mnt_flag & MNT_NOATIME) == 0)
2202 puffs_updatenode(VPTOPP(vp), PUFFS_UPDATEATIME, 0);
2222 PUFFS_VN_READ, VPTOPNC(vp));
2225 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_read, vp->v_data,
2273 struct vnode *vp = ap->a_vp;
2274 struct puffs_node *pn = VPTOPP(vp);
2275 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2288 if (vp->v_type == VREG && PUFFS_USE_PAGECACHE(pmp)) {
2289 ubcflags = UBC_WRITE | UBC_PARTIALOK | UBC_UNMAP_FLAG(vp);
2296 uio->uio_offset = vp->v_size;
2300 if (vp->v_mount->mnt_flag & MNT_RELATIME)
2308 if (vp->v_size < newoff) {
2309 uvm_vnp_setwritesize(vp, newoff);
2311 error = ubc_uiomove(&vp->v_uobj, uio, bytelen,
2321 if (vp->v_size < newoff) {
2324 uvm_vnp_setsize(vp, newoff);
2326 uvm_vnp_setwritesize(vp, vp->v_size);
2342 mutex_enter(vp->v_interlock);
2343 error = VOP_PUTPAGES(vp, oldoff & ~0xffff,
2353 mutex_enter(vp->v_interlock);
2354 error = VOP_PUTPAGES(vp, trunc_page(origoff),
2360 mutex_enter(vp->v_interlock);
2361 error = VOP_PUTPAGES(vp, trunc_page(origoff),
2365 puffs_updatenode(VPTOPP(vp), uflags, vp->v_size);
2384 PUFFS_VN_WRITE, VPTOPNC(vp));
2385 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_write, vp->v_data,
2399 if (vp->v_size < uio->uio_offset)
2400 uvm_vnp_setsize(vp, uio->uio_offset);
2422 struct vnode *vp = ap->a_vp;
2423 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2424 struct puffs_node *pn = vp->v_data;
2429 "\tuserspace cookie: %p", vp, pn, pn->pn_cookie);
2430 if (vp->v_type == VFIFO)
2438 PUFFS_VN_PRINT, VPTOPNC(vp));
2439 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_print, vp->v_data,
2457 struct vnode *vp = ap->a_vp;
2458 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2464 PUFFS_VN_PATHCONF, VPTOPNC(vp));
2465 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_pathconf, vp->v_data, NULL, error);
2486 struct vnode *vp = ap->a_vp;
2487 struct puffs_node *pn = VPTOPP(vp);
2488 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2492 return lf_advlock(ap, &pn->pn_lockf, vp->v_size);
2501 PUFFS_VN_ADVLOCK, VPTOPNC(vp));
2502 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_advlock, vp->v_data, NULL, error);
2550 struct vnode *vp = ap->a_vp;
2551 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2558 pmp = MPTOPUFFSMP(vp->v_mount);
2563 pn = VPTOPP(vp);
2594 mutex_enter(vp->v_interlock);
2595 if (vp->v_iflag & VI_XLOCK)
2599 mutex_exit(vp->v_interlock);
2618 PUFFS_VN_READ, VPTOPNC(vp));
2626 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_rw, vp->v_data,
2634 E2BIG, "resid grew", VPTOPNC(vp));
2645 PUFFS_VN_WRITE, VPTOPNC(vp));
2651 struct uvm_object *uobj = &vp->v_uobj;
2660 "vp %p page %p, offset %" PRId64"\n",
2661 vp, vmp, vmp->offset));
2678 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_rw, vp->v_data, NULL, error);
2696 E2BIG, "resid grew", VPTOPNC(vp));
2738 struct vnode *vp = ap->a_vp;
2739 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2750 PUFFS_VN_MMAP, VPTOPNC(vp));
2752 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_mmap, vp->v_data, NULL, error);
2822 struct vnode *vp;
2834 vp = ap->a_vp;
2835 pn = vp->v_data;
2850 if (ap->a_offset >= pn->pn_serversize && ap->a_offset < vp->v_size) {
2857 mutex_exit(vp->v_interlock);
2859 va.va_size = vp->v_size;
2860 error = dosetattr(vp, &va, FSCRED, 0);
2863 mutex_enter(vp->v_interlock);
2905 mutex_enter(vp->v_uobj.vmobjlock);
2931 mutex_exit(vp->v_uobj.vmobjlock);
2939 sizeof(struct puffs_cacheinfo) + runsizes, VPTOPNC(vp));
2972 struct vnode *vp = ap->a_vp;
2973 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
3004 PUFFSOP_VN, PUFFS_VN_GETEXTATTR, VPTOPNC(vp));
3006 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_getextattr, vp->v_data, NULL, error);
3015 "resid grew", VPTOPNC(vp));
3041 struct vnode *vp = ap->a_vp;
3042 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
3076 PUFFSOP_VN, PUFFS_VN_SETEXTATTR, VPTOPNC(vp));
3077 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_setextattr, vp->v_data, NULL, error);
3104 struct vnode *vp = ap->a_vp;
3105 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
3135 PUFFSOP_VN, PUFFS_VN_LISTEXTATTR, VPTOPNC(vp));
3137 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_listextattr, vp->v_data, NULL, error);
3146 "resid grew", VPTOPNC(vp));
3171 struct vnode *vp = ap->a_vp;
3172 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
3184 PUFFSOP_VN, PUFFS_VN_DELETEEXTATTR, VPTOPNC(vp));
3186 vp->v_data, NULL, error);