Lines Matching defs:vp

102 static int vn_access(struct vnode *vp, int user_flags, struct ucred *cred,
377 struct vnode *vp;
384 vp = fp->f_vnode;
385 vfslocked = VFS_LOCK_GIANT(vp->v_mount);
386 vn_lock(vp, LK_SHARED | LK_RETRY);
388 AUDIT_ARG_VNODE1(vp);
390 mp = vp->v_mount;
393 VOP_UNLOCK(vp, 0);
747 struct vnode *vp, *tdp, *vpold;
756 vp = fp->f_vnode;
757 VREF(vp);
759 vfslocked = VFS_LOCK_GIANT(vp->v_mount);
760 vn_lock(vp, LK_SHARED | LK_RETRY);
761 AUDIT_ARG_VNODE1(vp);
762 error = change_dir(vp, td);
763 while (!error && (mp = vp->v_mountedhere) != NULL) {
774 vput(vp);
776 vp = tdp;
780 vput(vp);
784 VOP_UNLOCK(vp, 0);
788 fdp->fd_cdir = vp;
821 struct vnode *vp;
839 vp = fdp->fd_cdir;
842 vfslocked = VFS_LOCK_GIANT(vp->v_mount);
843 vrele(vp);
856 struct vnode *vp;
867 vp = fp->f_vnode;
868 if (vp->v_type == VDIR)
941 change_dir(vp, td)
942 struct vnode *vp;
947 ASSERT_VOP_LOCKED(vp, "change_dir(): vp not locked");
948 if (vp->v_type != VDIR)
951 error = mac_vnode_check_chdir(td->td_ucred, vp);
955 error = VOP_ACCESS(vp, VEXEC, td->td_ucred, td);
965 change_root(vp, td)
966 struct vnode *vp;
974 VFS_ASSERT_GIANT(vp->v_mount);
986 fdp->fd_rdir = vp;
989 fdp->fd_jdir = vp;
1089 struct vnode *vp;
1171 vp = nd.ni_vp;
1178 fp->f_vnode = vp;
1184 KASSERT(vp->v_type != VFIFO, ("Unexpected fifo."));
1186 finit(fp, flags & FMASK, DTYPE_VNODE, vp, &vnops);
1189 VOP_UNLOCK(vp, 0);
1201 if ((error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf,
1325 struct vnode *vp;
1364 vp = nd.ni_vp;
1365 if (vp != NULL) {
1367 if (vp == nd.ni_dvp)
1371 vrele(vp);
1584 can_hardlink(struct vnode *vp, struct ucred *cred)
1592 error = VOP_GETATTR(vp, &va, cred);
1622 struct vnode *vp;
1637 vp = nd.ni_vp;
1638 if (vp->v_type == VDIR) {
1639 vrele(vp);
1643 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) {
1644 vrele(vp);
1659 } else if ((error = vn_lock(vp, LK_EXCLUSIVE | LK_RETRY))
1661 error = can_hardlink(vp, td->td_ucred);
1665 nd.ni_dvp, vp, &nd.ni_cnd);
1668 error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd);
1669 VOP_UNLOCK(vp, 0);
1675 vrele(vp);
1899 struct vnode *vp;
1912 vp = nd.ni_vp;
1913 if (vp->v_type == VDIR && oldinum == 0) {
1916 ((error = vn_stat(vp, &sb, td->td_ucred, NOCRED, td)) == 0) &&
1925 if (vp->v_vflag & VV_ROOT)
1932 if (vp == nd.ni_dvp)
1933 vrele(vp);
1935 vput(vp);
1943 error = mac_vnode_check_unlink(td->td_ucred, nd.ni_dvp, vp,
1948 vfs_notify_upper(vp, VFS_NOTIFY_UPPER_UNLINK);
1949 error = VOP_REMOVE(nd.ni_dvp, vp, &nd.ni_cnd);
1957 if (vp == nd.ni_dvp)
1958 vrele(vp);
1960 vput(vp);
1988 struct vnode *vp;
2001 vp = fp->f_vnode;
2003 vfslocked = VFS_LOCK_GIANT(vp->v_mount);
2004 noneg = (vp->v_type != VCHR);
2017 vn_lock(vp, LK_SHARED | LK_RETRY);
2018 error = VOP_GETATTR(vp, &vattr, cred);
2019 VOP_UNLOCK(vp, 0);
2028 if (vattr.va_size == 0 && vp->v_type == VCHR &&
2054 VFS_KNOTE_UNLOCKED(vp, 0);
2115 vn_access(vp, user_flags, cred, td)
2116 struct vnode *vp;
2135 error = mac_vnode_check_access(cred, vp, accmode);
2139 if ((accmode & VWRITE) == 0 || (error = vn_writechk(vp)) == 0)
2140 error = VOP_ACCESS(vp, accmode, cred, td);
2196 struct vnode *vp;
2219 vp = nd.ni_vp;
2221 error = vn_access(vp, mode, tmpcred, td);
2223 vput(vp);
2416 void (*hook)(struct vnode *vp, struct stat *sbp))
2684 struct vnode *vp;
2701 vp = nd.ni_vp;
2703 error = mac_vnode_check_readlink(td->td_ucred, vp);
2705 vput(vp);
2710 if (vp->v_type != VLNK)
2722 error = VOP_READLINK(vp, &auio, td->td_ucred);
2725 vput(vp);
2734 setfflags(td, vp, flags)
2736 struct vnode *vp;
2753 if (vp->v_type == VCHR || vp->v_type == VBLK) {
2759 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0)
2761 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
2765 error = mac_vnode_check_setflags(td->td_ucred, vp, vattr.va_flags);
2768 error = VOP_SETATTR(vp, &vattr, td->td_ucred);
2769 VOP_UNLOCK(vp, 0);
2878 setfmode(td, cred, vp, mode)
2881 struct vnode *vp;
2888 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0)
2890 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
2894 error = mac_vnode_check_setmode(cred, vp, vattr.va_mode);
2897 error = VOP_SETATTR(vp, &vattr, cred);
2898 VOP_UNLOCK(vp, 0);
3029 setfown(td, cred, vp, uid, gid)
3032 struct vnode *vp;
3040 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0)
3042 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
3047 error = mac_vnode_check_setowner(cred, vp, vattr.va_uid,
3051 error = VOP_SETATTR(vp, &vattr, cred);
3052 VOP_UNLOCK(vp, 0);
3234 setutimes(td, vp, ts, numtimes, nullflag)
3236 struct vnode *vp;
3245 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0)
3247 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
3249 if (numtimes < 3 && !VOP_GETATTR(vp, &vattr, td->td_ucred) &&
3262 error = mac_vnode_check_setutimes(td->td_ucred, vp, vattr.va_atime,
3266 error = VOP_SETATTR(vp, &vattr, td->td_ucred);
3267 VOP_UNLOCK(vp, 0);
3459 struct vnode *vp;
3471 vp = nd.ni_vp;
3472 rl_cookie = vn_rangelock_wlock(vp, 0, OFF_MAX);
3473 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) {
3474 vn_rangelock_unlock(vp, rl_cookie);
3475 vrele(vp);
3480 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
3481 if (vp->v_type == VDIR)
3484 else if ((error = mac_vnode_check_write(td->td_ucred, NOCRED, vp))) {
3487 else if ((error = vn_writechk(vp)) == 0 &&
3488 (error = VOP_ACCESS(vp, VWRITE, td->td_ucred, td)) == 0) {
3491 error = VOP_SETATTR(vp, &vattr, td->td_ucred);
3493 VOP_UNLOCK(vp, 0);
3495 vn_rangelock_unlock(vp, rl_cookie);
3496 vrele(vp);
3567 struct vnode *vp;
3577 vp = fp->f_vnode;
3578 vfslocked = VFS_LOCK_GIANT(vp->v_mount);
3579 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0)
3582 ((mp == NULL) && MNT_SHARED_WRITES(vp->v_mount))) {
3587 vn_lock(vp, lock_flags | LK_RETRY);
3588 AUDIT_ARG_VNODE1(vp);
3589 if (vp->v_object != NULL) {
3590 VM_OBJECT_LOCK(vp->v_object);
3591 vm_object_page_clean(vp->v_object, 0, 0, 0);
3592 VM_OBJECT_UNLOCK(vp->v_object);
3594 error = VOP_FSYNC(vp, MNT_WAIT, td);
3596 VOP_UNLOCK(vp, 0);
3808 struct vnode *vp;
3823 vp = nd.ni_vp;
3824 if (vp != NULL) {
3831 if (vp == nd.ni_dvp)
3835 vrele(vp);
3899 struct vnode *vp;
3911 vp = nd.ni_vp;
3912 if (vp->v_type != VDIR) {
3919 if (nd.ni_dvp == vp) {
3926 if (vp->v_vflag & VV_ROOT) {
3931 error = mac_vnode_check_unlink(td->td_ucred, nd.ni_dvp, vp,
3938 vput(vp);
3939 if (nd.ni_dvp == vp)
3948 vfs_notify_upper(vp, VFS_NOTIFY_UPPER_UNLINK);
3953 vput(vp);
3954 if (nd.ni_dvp == vp)
3990 struct vnode *vp;
4010 vp = fp->f_vnode;
4013 vfslocked = VFS_LOCK_GIANT(vp->v_mount);
4014 if (vp->v_type != VDIR) {
4028 vn_lock(vp, LK_SHARED | LK_RETRY);
4031 error = mac_vnode_check_readdir(td->td_ucred, vp);
4033 VOP_UNLOCK(vp, 0);
4041 if (vp->v_mount->mnt_maxsymlinklen <= 0) {
4042 error = VOP_READDIR(vp, &auio, fp->f_cred, &eofflag,
4054 error = VOP_READDIR(vp, &kuio, fp->f_cred, &eofflag,
4092 VOP_UNLOCK(vp, 0);
4099 (vp->v_vflag & VV_ROOT) &&
4100 (vp->v_mount->mnt_flag & MNT_UNION)) {
4101 struct vnode *tvp = vp;
4102 vp = vp->v_mount->mnt_vnodecovered;
4103 VREF(vp);
4104 fp->f_vnode = vp;
4105 fp->f_data = vp;
4111 VOP_UNLOCK(vp, 0);
4158 struct vnode *vp;
4178 vp = fp->f_vnode;
4181 vfslocked = VFS_LOCK_GIANT(vp->v_mount);
4182 if (vp->v_type != VDIR) {
4194 vn_lock(vp, LK_SHARED | LK_RETRY);
4195 AUDIT_ARG_VNODE1(vp);
4198 error = mac_vnode_check_readdir(td->td_ucred, vp);
4201 error = VOP_READDIR(vp, &auio, fp->f_cred, &eofflag, NULL,
4205 VOP_UNLOCK(vp, 0);
4210 (vp->v_vflag & VV_ROOT) &&
4211 (vp->v_mount->mnt_flag & MNT_UNION)) {
4212 struct vnode *tvp = vp;
4213 vp = vp->v_mount->mnt_vnodecovered;
4214 VREF(vp);
4215 fp->f_vnode = vp;
4216 fp->f_data = vp;
4222 VOP_UNLOCK(vp, 0);
4297 struct vnode *vp;
4308 vp = nd.ni_vp;
4310 if (vp->v_type != VCHR || vp->v_rdev == NULL) {
4315 error = mac_vnode_check_revoke(td->td_ucred, vp);
4319 error = VOP_GETATTR(vp, &vattr, td->td_ucred);
4327 if (vcount(vp) > 1)
4328 VOP_REVOKE(vp, REVOKEALL);
4330 vput(vp);
4408 register struct vnode *vp;
4422 vp = nd.ni_vp;
4424 fh.fh_fsid = vp->v_mount->mnt_stat.f_fsid;
4425 error = VOP_VPTOFH(vp, &fh.fh_fid);
4426 vput(vp);
4447 register struct vnode *vp;
4461 vp = nd.ni_vp;
4463 fh.fh_fsid = vp->v_mount->mnt_stat.f_fsid;
4464 error = VOP_VPTOFH(vp, &fh.fh_fid);
4465 vput(vp);
4496 struct vnode *vp;
4525 error = VFS_FHTOVP(mp, &fhp.fh_fid, LK_EXCLUSIVE, &vp);
4532 * any error that causes an abort must vput(vp)
4539 if (vp->v_type == VLNK) {
4543 if (vp->v_type == VSOCK) {
4547 if (vp->v_type != VDIR && fmode & O_DIRECTORY) {
4553 if (vp->v_type == VDIR) {
4557 error = vn_writechk(vp);
4567 error = mac_vnode_check_open(td->td_ucred, vp, accmode);
4572 error = VOP_ACCESS(vp, accmode, td->td_ucred, td);
4578 VOP_UNLOCK(vp, 0); /* XXX */
4580 vrele(vp);
4584 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); /* XXX */
4591 error = mac_vnode_check_write(td->td_ucred, td->td_ucred, vp);
4596 error = VOP_SETATTR(vp, vap, td->td_ucred);
4604 error = VOP_OPEN(vp, fmode, td->td_ucred, td, NULL);
4609 vp->v_writecount++;
4617 vp->v_writecount--;
4622 nfp->f_vnode = vp;
4623 finit(nfp, fmode & FMASK, DTYPE_VNODE, vp, &vnops);
4635 VOP_UNLOCK(vp, 0);
4636 if ((error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf,
4651 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
4655 VOP_UNLOCK(vp, 0);
4662 vput(vp);
4688 struct vnode *vp;
4701 error = VFS_FHTOVP(mp, &fh.fh_fid, LK_EXCLUSIVE, &vp);
4707 error = vn_stat(vp, &sb, td->td_ucred, NOCRED, td);
4708 vput(vp);
4751 struct vnode *vp;
4761 error = VFS_FHTOVP(mp, &fh.fh_fid, LK_EXCLUSIVE, &vp);
4767 vput(vp);
4797 struct vnode *vp;
4822 vp = fp->f_vnode;
4823 if (vp->v_type != VREG) {
4843 vfslocked = VFS_LOCK_GIANT(vp->v_mount);
4845 error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
4850 error = vn_lock(vp, LK_EXCLUSIVE);
4857 error = mac_vnode_check_write(td->td_ucred, fp->f_cred, vp);
4860 error = VOP_ALLOCATE(vp, &offset, &len);
4861 VOP_UNLOCK(vp, 0);
4901 struct vnode *vp;
4937 vp = fp->f_vnode;
4938 if (vp->v_type != VREG) {
5010 error = VOP_ADVISE(vp, offset, end, advice);