The branch main has been updated by mjg:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=59146a6921d06d5cf4320dc8ed82810363ffe7c4

commit 59146a6921d06d5cf4320dc8ed82810363ffe7c4
Author:     Mateusz Guzik <m...@freebsd.org>
AuthorDate: 2021-03-13 09:10:16 +0000
Commit:     Mateusz Guzik <m...@freebsd.org>
CommitDate: 2021-03-13 09:31:49 +0000

    zfs: make seqc asserts conditional on replay
    
    Avoids tripping on asserts when doing pool recovery.
---
 sys/contrib/openzfs/module/os/freebsd/zfs/zfs_acl.c | 9 ++++++---
 sys/contrib/openzfs/module/zfs/zfs_replay.c         | 5 -----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_acl.c 
b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_acl.c
index 23b87de8bd0d..7089d0e0e887 100644
--- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_acl.c
+++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_acl.c
@@ -1141,10 +1141,11 @@ zfs_acl_chown_setattr(znode_t *zp)
        int error;
        zfs_acl_t *aclp;
 
-       if (zp->z_zfsvfs->z_replay == B_FALSE)
+       if (zp->z_zfsvfs->z_replay == B_FALSE) {
                ASSERT_VOP_ELOCKED(ZTOV(zp), __func__);
+               ASSERT_VOP_IN_SEQC(ZTOV(zp));
+       }
        ASSERT(MUTEX_HELD(&zp->z_acl_lock));
-       ASSERT_VOP_IN_SEQC(ZTOV(zp));
 
        if ((error = zfs_acl_node_read(zp, B_TRUE, &aclp, B_FALSE)) == 0)
                zp->z_mode = zfs_mode_compute(zp->z_mode, aclp,
@@ -1172,7 +1173,9 @@ zfs_aclset_common(znode_t *zp, zfs_acl_t *aclp, cred_t 
*cr, dmu_tx_t *tx)
        int                     count = 0;
        zfs_acl_phys_t          acl_phys;
 
-       ASSERT_VOP_IN_SEQC(ZTOV(zp));
+       if (zp->z_zfsvfs->z_replay == B_FALSE) {
+               ASSERT_VOP_IN_SEQC(ZTOV(zp));
+       }
 
        mode = zp->z_mode;
 
diff --git a/sys/contrib/openzfs/module/zfs/zfs_replay.c 
b/sys/contrib/openzfs/module/zfs/zfs_replay.c
index 53c7dbd5df43..cba5e8c9cd0b 100644
--- a/sys/contrib/openzfs/module/zfs/zfs_replay.c
+++ b/sys/contrib/openzfs/module/zfs/zfs_replay.c
@@ -859,12 +859,7 @@ zfs_replay_setattr(void *arg1, void *arg2, boolean_t 
byteswap)
        zfsvfs->z_fuid_replay = zfs_replay_fuid_domain(start, &start,
            lr->lr_uid, lr->lr_gid);
 
-       /*
-        * Satisfy assertions.
-        */
-       vn_seqc_write_begin(ZTOV(zp));
        error = zfs_setattr(zp, vap, 0, kcred);
-       vn_seqc_write_end(ZTOV(zp));
 
        zfs_fuid_info_free(zfsvfs->z_fuid_replay);
        zfsvfs->z_fuid_replay = NULL;
_______________________________________________
dev-commits-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "dev-commits-src-all-unsubscr...@freebsd.org"

Reply via email to