| /freebsd/sys/kern/ |
| H A D | vfs_vnops.c | 3294 vn_copy_file_range(struct vnode *invp, off_t *inoffp, struct vnode *outvp, in vn_copy_file_range() argument 3310 if (invp->v_type == VDIR || outvp->v_type == VDIR) in vn_copy_file_range() 3313 invp->v_type != VREG || outvp->v_type != VREG) in vn_copy_file_range() 3333 error = VOP_GETLOWVNODE(outvp, &outvpl, FWRITE); in vn_copy_file_range() 3421 vn_skip_hole(struct vnode *outvp, off_t xfer2, off_t *outoffp, off_t *xferp, in vn_skip_hole() argument 3429 error = VOP_IOCTL(outvp, FIOSEEKDATA, dataoffp, 0, cred, in vn_skip_hole() 3433 error = VOP_IOCTL(outvp, FIOSEEKHOLE, holeoffp, 0, cred, in vn_skip_hole() 3496 vn_write_outvp(struct vnode *outvp, char *dat, off_t outoff, off_t xfer, in vn_write_outvp() argument 3518 xfer2 = vn_skip_hole(outvp, xfer2, &outoff, &xfer, in vn_write_outvp() 3529 error = vn_start_write(outvp, &mp, V_WAIT); in vn_write_outvp() [all …]
|
| H A D | vnode_if.src | 791 %% copy_file_range outvp U U U 797 IN struct vnode *outvp;
|
| H A D | vfs_syscalls.c | 5074 struct vnode *invp, *outvp; in kern_copy_file_range() local 5159 outvp = outfp->f_vnode; in kern_copy_file_range() 5184 if (invp == outvp) { in kern_copy_file_range() 5195 rl_wcookie = vn_rangelock_wlock(outvp, outoff, outoff + len); in kern_copy_file_range() 5199 vn_rangelock_unlock(outvp, rl_wcookie); in kern_copy_file_range() 5205 error = vn_copy_file_range(invp, &inoff, outvp, &outoff, &retlen, in kern_copy_file_range() 5211 vn_rangelock_unlock(outvp, rl_wcookie); in kern_copy_file_range()
|
| /freebsd/sys/fs/fuse/ |
| H A D | fuse_vnops.c | 962 struct vnode *outvp = ap->a_outvp; in fuse_vnop_copy_file_range() local 964 struct fuse_vnode_data *outfvdat = VTOFUD(outvp); in fuse_vnop_copy_file_range() 981 if (mp == NULL || mp != vnode_mount(outvp)) in fuse_vnop_copy_file_range() 1003 vn_lock_pair(invp, false, LK_SHARED, outvp, false, LK_EXCLUSIVE); in fuse_vnop_copy_file_range() 1004 if (invp->v_data == NULL || outvp->v_data == NULL) { in fuse_vnop_copy_file_range() 1013 err = fuse_filehandle_getrw(outvp, FWRITE, &outfufh, outcred, pid); in fuse_vnop_copy_file_range() 1020 err = vn_rlimit_fsizex(outvp, &io, 0, &r, ap->a_fsizetd); in fuse_vnop_copy_file_range() 1025 err = fuse_vnode_size(outvp, &outfilesize, outcred, curthread); in fuse_vnop_copy_file_range() 1030 err = fuse_inval_buf_range(outvp, outfilesize, *ap->a_outoffp, in fuse_vnop_copy_file_range() 1040 fcfri->nodeid_out = VTOI(outvp); in fuse_vnop_copy_file_range() [all …]
|
| /freebsd/sys/fs/nfsclient/ |
| H A D | nfs_clvnops.c | 4001 struct vnode *outvp = ap->a_outvp; in nfs_copy_file_range() local 4025 if ((invp == outvp && (ap->a_flags & COPY_FILE_RANGE_CLONE) == 0) || in nfs_copy_file_range() 4026 (invp != outvp && invp->v_mount != outvp->v_mount)) { in nfs_copy_file_range() 4030 if (invp == outvp) { in nfs_copy_file_range() 4047 error = vn_start_write(outvp, &mp, V_WAIT); in nfs_copy_file_range() 4049 error = vn_lock(outvp, LK_EXCLUSIVE); in nfs_copy_file_range() 4056 VOP_UNLOCK(outvp); in nfs_copy_file_range() 4089 VOP_UNLOCK(outvp); /* For onevp, same as invp. */ in nfs_copy_file_range() 4101 error = vn_rlimit_fsizex(outvp, &io, 0, &r, ap->a_fsizetd); in nfs_copy_file_range() 4124 VOP_UNLOCK(outvp); in nfs_copy_file_range() [all …]
|
| H A D | nfs_clrpcops.c | 8976 nfsrpc_copy_file_range(vnode_t invp, off_t *inoffp, vnode_t outvp, in nfsrpc_copy_file_range() argument 8991 outnfhp = VTONFS(outvp)->n_fhp; in nfsrpc_copy_file_range() 9000 nfscl_getstateid(outvp, outnfhp->nfh_fh, outnfhp->nfh_len, in nfsrpc_copy_file_range() 9004 error = nfsrpc_copyrpc(invp, *inoffp, outvp, *outoffp, lenp, in nfsrpc_copy_file_range() 9047 nfsrpc_copyrpc(vnode_t invp, off_t inoff, vnode_t outvp, off_t outoff, in nfsrpc_copyrpc() argument 9100 (void)nfsm_fhtom(nmp, nd, VTONFS(outvp)->n_fhp->nfh_fh, in nfsrpc_copyrpc() 9101 VTONFS(outvp)->n_fhp->nfh_len, 0); in nfsrpc_copyrpc() 9213 nfsrpc_clone(vnode_t invp, off_t *inoffp, vnode_t outvp, in nfsrpc_clone() argument 9228 outnfhp = VTONFS(outvp)->n_fhp; in nfsrpc_clone() 9237 nfscl_getstateid(outvp, outnfhp->nfh_fh, outnfhp->nfh_len, in nfsrpc_clone() [all …]
|
| /freebsd/sys/contrib/openzfs/module/os/freebsd/zfs/ |
| H A D | zfs_vnops_os.c | 6922 struct vnode *outvp = ap->a_outvp; in zfs_freebsd_copy_file_range() local 6939 vn_start_write(outvp, &mp, V_WAIT); in zfs_freebsd_copy_file_range() 6940 if (__predict_true(mp == outvp->v_mount)) { in zfs_freebsd_copy_file_range() 6947 if (invp == outvp) { in zfs_freebsd_copy_file_range() 6948 if (vn_lock(outvp, LK_EXCLUSIVE) != 0) { in zfs_freebsd_copy_file_range() 6954 vn_lock_pair(invp, false, LK_SHARED, outvp, false, in zfs_freebsd_copy_file_range() 6957 vn_lock_pair(invp, false, outvp, false); in zfs_freebsd_copy_file_range() 6959 if (VN_IS_DOOMED(invp) || VN_IS_DOOMED(outvp)) { in zfs_freebsd_copy_file_range() 6966 outvp); in zfs_freebsd_copy_file_range() 6971 error = zfs_clone_range(VTOZ(invp), ap->a_inoffp, VTOZ(outvp), in zfs_freebsd_copy_file_range() [all …]
|
| /freebsd/sys/sys/ |
| H A D | vnode.h | 767 struct vnode *outvp, off_t *outoffp, size_t *lenp, 776 struct vnode *outvp, off_t *outoffp, size_t *lenp,
|