From f71c16a66126b7a1896b3b0c59a42a7b9186e56b Mon Sep 17 00:00:00 2001 From: chrisperedun <126915832+chrisperedun@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:12:30 -0500 Subject: [PATCH] Don't panic on unencrypted block in encrypted dataset While 763ca47 closes the situation of block cloning creating unencrypted records in encrypted datasets, existing data still causes panic on read. Setting zfs_recover bypasses this but at the cost of potentially ignoring more serious issues. Reviewed-by: Alexander Motin Reviewed-by: Brian Behlendorf Signed-off-by: Chris Peredun Closes #15677 --- module/zfs/dbuf.c | 2 -- module/zfs/dmu_send.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/module/zfs/dbuf.c b/module/zfs/dbuf.c index e4c59b593..255add6cd 100644 --- a/module/zfs/dbuf.c +++ b/module/zfs/dbuf.c @@ -1619,8 +1619,6 @@ dbuf_read_impl(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags, */ if (db->db_objset->os_encrypted && !BP_USES_CRYPT(bpp)) { spa_log_error(db->db_objset->os_spa, &zb, &bpp->blk_birth); - zfs_panic_recover("unencrypted block in encrypted " - "object set %llu", dmu_objset_id(db->db_objset)); err = SET_ERROR(EIO); goto early_unlock; } diff --git a/module/zfs/dmu_send.c b/module/zfs/dmu_send.c index 2d37ed2cd..37c68528b 100644 --- a/module/zfs/dmu_send.c +++ b/module/zfs/dmu_send.c @@ -1124,8 +1124,6 @@ send_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, if (sta->os->os_encrypted && !BP_IS_HOLE(bp) && !BP_USES_CRYPT(bp)) { spa_log_error(spa, zb, &bp->blk_birth); - zfs_panic_recover("unencrypted block in encrypted " - "object set %llu", dmu_objset_id(sta->os)); return (SET_ERROR(EIO)); }