From: chrisperedun <126915832+chrisperedun@users.noreply.github.com> Date: Thu, 21 Dec 2023 19:12:30 +0000 (-0500) Subject: Don't panic on unencrypted block in encrypted dataset X-Git-Url: https://git.proxmox.com/?p=mirror_zfs.git;a=commitdiff_plain;h=5a4915660c54e6c16ca7b4683dcf4c18a3942a5b 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 --- diff --git a/module/zfs/dbuf.c b/module/zfs/dbuf.c index e9d5abca3..324bf8cbc 100644 --- a/module/zfs/dbuf.c +++ b/module/zfs/dbuf.c @@ -1634,8 +1634,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)); }