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 <[email protected]>
AuthorDate: 2024-08-10 09:15:30 +0000
Commit:     Martin Matuska <[email protected]>
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 <[email protected]>
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?

--
John Baldwin


Reply via email to