Lines Matching refs:vp
102 struct vnode *vp;
110 vp = ap->a_vp;
111 ip = VTOI(vp);
117 KASSERT(vp->v_type == VREG || vp->v_type == VDIR);
120 if (vp->v_type == VDIR)
121 return ext2fs_bufrd(vp, uio, ap->a_ioflag, ap->a_cred);
130 KASSERT(vp->v_type == VREG);
138 error = ubc_uiomove(&vp->v_uobj, uio, bytelen, advice,
139 UBC_READ | UBC_PARTIALOK | UBC_VNODE_FLAGS(vp));
145 error = ext2fs_post_read_update(vp, ap->a_ioflag, error);
153 ext2fs_bufrd(struct vnode *vp, struct uio *uio, int ioflag, kauth_cred_t cred)
165 KASSERT(VOP_ISLOCKED(vp));
166 KASSERT(vp->v_type == VDIR || vp->v_type == VLNK);
168 ip = VTOI(vp);
173 KASSERT(vp->v_type != VLNK ||
175 KASSERT(vp->v_type != VLNK || ump->um_maxsymlinklen != 0 ||
200 error = bread(vp, lbn, size, 0, &bp);
203 error = breadn(vp, lbn,
231 error = ext2fs_post_read_update(vp, ioflag, error);
236 ext2fs_post_read_update(struct vnode *vp, int ioflag, int oerror)
238 struct inode *ip = VTOI(vp);
241 if (!(vp->v_mount->mnt_flag & MNT_NOATIME)) {
244 error = ext2fs_update(vp, NULL, NULL, UPDATE_WAIT);
265 struct vnode *vp;
281 vp = ap->a_vp;
282 ip = VTOI(vp);
287 KASSERT(vp->v_type == VREG);
302 async = vp->v_mount->mnt_flag & MNT_ASYNC;
306 KASSERT(vp->v_type == VREG);
312 if (vp->v_size < oldoff + bytelen) {
313 uvm_vnp_setwritesize(vp, oldoff + bytelen);
315 error = ufs_balloc_range(vp, uio->uio_offset, bytelen,
319 error = ubc_uiomove(&vp->v_uobj, uio, bytelen, advice,
320 UBC_WRITE | UBC_VNODE_FLAGS(vp));
329 if (vp->v_size < uio->uio_offset) {
330 uvm_vnp_setsize(vp, uio->uio_offset);
339 rw_enter(vp->v_uobj.vmobjlock, RW_WRITER);
340 error = VOP_PUTPAGES(vp, (oldoff >> fshift) << fshift,
346 rw_enter(vp->v_uobj.vmobjlock, RW_WRITER);
347 error = VOP_PUTPAGES(vp, trunc_page(oldoff),
352 error = ext2fs_post_write_update(vp, uio, ioflag, ap->a_cred, osize,
361 ext2fs_bufwr(struct vnode *vp, struct uio *uio, int ioflag, kauth_cred_t cred)
373 KASSERT(VOP_ISLOCKED(vp) == LK_EXCLUSIVE);
374 KASSERT(vp->v_type == VDIR || vp->v_type == VLNK);
375 KASSERT(vp->v_type != VDIR || ISSET(ioflag, IO_SYNC));
378 ip = VTOI(vp);
418 if (vp->v_size < uio->uio_offset) {
419 uvm_vnp_setsize(vp, uio->uio_offset);
432 error = ext2fs_post_write_update(vp, uio, ioflag, cred, osize, resid,
438 ext2fs_post_write_update(struct vnode *vp, struct uio *uio, int ioflag,
441 struct inode *ip = VTOI(vp);
446 if (vp->v_mount->mnt_flag & MNT_RELATIME)
457 KAUTH_VNODE_RETAIN_SUID, vp, NULL, EPERM) != 0)
463 KAUTH_VNODE_RETAIN_SGID, vp, NULL, EPERM) != 0)
473 (void) ext2fs_truncate(vp, osize, ioflag & IO_SYNC, cred);
477 error = ext2fs_update(vp, NULL, NULL, UPDATE_WAIT);
480 KASSERT(vp->v_size == ext2fs_size(ip));