From 831fdad1b081473f5daeaf000ec3838790256ea0 Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Mon, 15 Jan 2024 12:58:12 +1100 Subject: [PATCH] slack: require module param before enabling slack compression Just an extra explicit opt-in, since it changes the compression method isn't upstreamed yet. --- module/zfs/zfs_ioctl.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c index b78cb80219..49e1c3f6cc 100644 --- a/module/zfs/zfs_ioctl.c +++ b/module/zfs/zfs_ioctl.c @@ -241,6 +241,11 @@ unsigned long zfs_max_nvlist_src_size = 0; */ unsigned long zfs_history_output_max = 1024 * 1024; +/* + * Whether or not to allow compression=slack to be set on a dataset. + */ +int zfs_slack_compress_enabled = 0; + uint_t zfs_fsyncer_key; uint_t zfs_allow_log_key; @@ -4573,6 +4578,9 @@ zfs_check_settable(const char *dsname, nvpair_t *pair, cred_t *cr) if (compval == ZIO_COMPRESS_SLACK) { spa_t *spa; + if (!zfs_slack_compress_enabled) + return (SET_ERROR(ENOTSUP)); + if ((err = spa_open(dsname, &spa, FTAG)) != 0) return (err); @@ -7770,4 +7778,7 @@ ZFS_MODULE_PARAM(zfs, zfs_, max_nvlist_src_size, ULONG, ZMOD_RW, ZFS_MODULE_PARAM(zfs, zfs_, history_output_max, ULONG, ZMOD_RW, "Maximum size in bytes of ZFS ioctl output that will be logged"); + +ZFS_MODULE_PARAM(zfs, zfs_, slack_compress_enabled, INT, ZMOD_RW, + "Allow slack compression feature to be set on a dataset"); /* END CSTYLED */