aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/openzfs/module
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2021-01-25 21:28:05 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2021-01-25 22:40:14 +0000
commitf40d6217f20d69427b58d82ce4e29d88bf4dfbd6 (patch)
tree7bfd369b0ca8bb40853aefb395f9612de0fcdfde /sys/contrib/openzfs/module
parent7a1591c1b625ef47a9c9954f0143a6f0d78cc05c (diff)
downloadsrc-f40d6217f20d69427b58d82ce4e29d88bf4dfbd6.tar.gz
src-f40d6217f20d69427b58d82ce4e29d88bf4dfbd6.zip
zfs: fix panics with invariant kernels from zfs_replay_setattr
Diffstat (limited to 'sys/contrib/openzfs/module')
-rw-r--r--sys/contrib/openzfs/module/zfs/zfs_replay.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/contrib/openzfs/module/zfs/zfs_replay.c b/sys/contrib/openzfs/module/zfs/zfs_replay.c
index cba5e8c9cd0b..53c7dbd5df43 100644
--- a/sys/contrib/openzfs/module/zfs/zfs_replay.c
+++ b/sys/contrib/openzfs/module/zfs/zfs_replay.c
@@ -859,7 +859,12 @@ 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;