Skip to content

Commit

Permalink
FreeBSD: make seqc asserts conditional on replay
Browse files Browse the repository at this point in the history
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
  • Loading branch information
mjguzik authored Mar 18, 2021
1 parent 46df6e9 commit 2f385c9
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions module/os/freebsd/zfs/zfs_acl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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;

Expand Down

0 comments on commit 2f385c9

Please sign in to comment.