Date: Fri, 7 Apr 2023 15:50:35 GMT From: Mateusz Guzik <mjg@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 20be1b4fc4b7 - main - zfs: try to fallback early if can't do optimized copy Message-ID: <202304071550.337FoZao060793@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=20be1b4fc4b72f10d5f9411e5bbde0f46a98be5b commit 20be1b4fc4b72f10d5f9411e5bbde0f46a98be5b Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-04-05 20:42:28 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-04-07 15:47:45 +0000 zfs: try to fallback early if can't do optimized copy Not complete, but already shaves on some locking. Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c index 67c1a6e3344b..2ddc7133d416 100644 --- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c +++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c @@ -6236,6 +6236,7 @@ struct vop_copy_file_range_args { static int zfs_freebsd_copy_file_range(struct vop_copy_file_range_args *ap) { + zfsvfs_t *outzfsvfs; struct vnode *invp = ap->a_invp; struct vnode *outvp = ap->a_outvp; struct mount *mp; @@ -6251,6 +6252,13 @@ zfs_freebsd_copy_file_range(struct vop_copy_file_range_args *ap) */ vn_start_write(outvp, &mp, V_WAIT); + if (__predict_true(mp == outvp->v_mount)) { + outzfsvfs = (zfsvfs_t *)mp->mnt_data; + if (!spa_feature_is_enabled(dmu_objset_spa(outzfsvfs->z_os), + SPA_FEATURE_BLOCK_CLONING)) { + goto bad_write_fallback; + } + } if (invp == outvp) { if (vn_lock(outvp, LK_EXCLUSIVE) != 0) { goto bad_write_fallback;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202304071550.337FoZao060793>