summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Guzik <mjguzik@gmail.com>2021-03-18 06:09:45 +0100
committerBrian Behlendorf <behlendorf1@llnl.gov>2021-05-19 20:00:08 -0700
commit4f893cdc6b92bbd05ef4c4fa1444d29fa9e97d32 (patch)
tree2de1e8b215dbde907e609965acfc06e3c1227474
parent911a095118d06c1928520e0a87afbdcf6f09016a (diff)
FreeBSD: make seqc asserts conditional on replay
Avoids tripping on asserts when doing pool recovery. Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: Mateusz Guzik <mjguzik@gmail.com> Closes #11739
-rw-r--r--module/os/freebsd/zfs/zfs_acl.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/module/os/freebsd/zfs/zfs_acl.c b/module/os/freebsd/zfs/zfs_acl.c
index 23b87de8b..7089d0e0e 100644
--- a/module/os/freebsd/zfs/zfs_acl.c
+++ b/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;