Re: git: ce4dcb97ca43 - main - zfs: merge openzfs/zfs@9c56b8ec7
- In reply to: John Baldwin : "Re: git: ce4dcb97ca43 - main - zfs: merge openzfs/zfs@9c56b8ec7"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 15 Nov 2024 22:26:38 UTC
On Fri, Nov 15, 2024 at 12:16:41PM -0500, John Baldwin wrote: > On 8/10/24 03:47, Martin Matuska wrote: > > The branch main has been updated by mm: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=ce4dcb97ca433b2a2f03fbae957dae0ff16f6f51 > > > > commit ce4dcb97ca433b2a2f03fbae957dae0ff16f6f51 > > Merge: 54a543d5ea3a 9c56b8ec7855 > > Author: Martin Matuska <mm@FreeBSD.org> > > AuthorDate: 2024-08-10 09:15:30 +0000 > > Commit: Martin Matuska <mm@FreeBSD.org> > > CommitDate: 2024-08-10 09:43:43 +0000 > > > > zfs: merge openzfs/zfs@9c56b8ec7 > > Notable upstream pull request merges: > > #15817 5536c0dee Sync AUX label during pool import > > #15889 c7ada64bb ddt: dedup table quota enforcement > > #15890 62e7d3c89 ddt: add support for prefetching tables into the ARC > > #15894 e26b3771e spa_preferred_class: pass the entire zio > > #15894 d54d0fff3 dnode: allow storage class to be overridden by object type > > #16197 55427add3 Several improvements to ARC shrinking > > #16217 -multiple JSON output for various zfs and zpool subcommands > > #16248 24e6585e7 libzfs.h: Set ZFS_MAXPROPLEN and ZPOOL_MAXPROPLEN > > to ZAP_MAXVALUELEN > > #16264 9dfc5c4a0 Fix long_free_dirty accounting for small files > > #16268 ed0db1cc8 Make txg_wait_synced conditional in zfsvfs_teardown, > > for FreeBSD > > #16288 d60debbf5 Fix sa_add_projid to lookup and update SA_ZPL_DXATTR > > #16308 ec580bc52 zfs: add bounds checking to zil_parse > > #16310 c21dc56ea Fix zdb_dump_block for little endian > > #16315 7ddc1f737 zil: add stats for commit failure/fallback > > #16326 b0bf14cdb abd: lift ABD zero scan from zio_compress_data() > > to abd_cmp_zero() > > #16337 c8184d714 Block cloning conditionally destroy ARC buffer > > #16338 dbe07928b Add support for multiple lines to the sharenfs property > > for FreeBSD > > #16374 1a3e32e6a Cleanup DB_DNODE() macros usage > > #16374 ed87d456e Skip dnode handles use when not needed > > #16346 fb6d8cf22 Add some missing vdev properties > > #16364 670147be5 zvol: ensure device minors are properly cleaned up > > #16382 dea8fabf7 FreeBSD: Fix RLIMIT_FSIZE handling for block cloning > > #16387 aef452f10 Improve zfs_blkptr_verify() > > #16395 cbcb52243 Fix the names of some FreeBSD sysctls in > > include/tunables.cfg > > #16401 5b9f3b766 Soften pruning threshold on not evictable metadata > > #16404 cdd53fea1 FreeBSD: Add missing memory reclamation accounting > > #16404 1fdcb653b Once more refactor arc_summary output > > #16419 1f5bf91a8 Fix memory corruption during parallel zpool import > > with -o cachefile > > #16426 cf6e8b218 zstream: remove duplicate highbit64 definition > > Obtained from: OpenZFS > > OpenZFS commit: 9c56b8ec7855119c8948c551ee28086a11465a56 > > This merge reverted the changes from: > > commit b068bb09a1a82d9fef0e939ad6135443a959e290 > Author: Konstantin Belousov <kib@FreeBSD.org> > Date: Mon Jan 8 07:18:40 2024 +0200 > > Add vnode_pager_clean_{a,}sync(9) > Bump __FreeBSD_version for ZFS use. > Reviewed by: markj > Sponsored by: The FreeBSD Foundation > MFC after: 1 week > Differential revision: https://reviews.freebsd.org/D43356 > > Specifically, it undid this change: > > diff --git a/sys/contrib/openzfs/include/os/freebsd/spl/sys/vnode.h b/sys/contri > b/openzfs/include/os/freebsd/spl/sys/vnode.h > index 75c32f221ffd..7a3b38736a58 100644 > --- a/sys/contrib/openzfs/include/os/freebsd/spl/sys/vnode.h > +++ b/sys/contrib/openzfs/include/os/freebsd/spl/sys/vnode.h > @@ -100,11 +101,11 @@ vn_flush_cached_data(vnode_t *vp, boolean_t sync) > #else > if (vp->v_object->flags & OBJ_MIGHTBEDIRTY) { > #endif > - int flags = sync ? OBJPC_SYNC : 0; > vn_lock(vp, LK_SHARED | LK_RETRY); > - zfs_vmobject_wlock(vp->v_object); > - vm_object_page_clean(vp->v_object, 0, 0, flags); > - zfs_vmobject_wunlock(vp->v_object); > + if (sync) > + vnode_pager_clean_sync(vp); > + else > + vnode_pager_clean_async(vp); > VOP_UNLOCK1(vp); > } > } > > (The addition of the #include <vm/vnode_pager.h> from this commit remains as > a local diff in main FWIW) > > It looks like vnode_pager_clean_*sync() are thin wrappers around > vm_object_page_clean() still in main, but I'm curious if this change > needs to be kept in main and/or upstreamed? Better to upstreaam it, of course. It is the simplified KPI brought in mainly for NFS client, but I do not see why other filesystems should be exempt.