From e44e51f28daa14b5279711f2f49aca7dea430ffe Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Fri, 25 Jul 2025 13:17:18 +1000 Subject: [PATCH] zvol_task_report_status: gate behind ZFS_DEBUG dprintf() is a no-op in production builds, giving a compile warning. So, refactor it a little to keep all the strings inside the function, and then make the function a no-op when ZFS_DEBUG is not set. Reviewed-by: Allan Jude Reviewed-by: Brian Behlendorf Reviewed-by: Alexander Motin Reviewed-by: Fedor Uporov Signed-off-by: Rob Norris Sponsored-by: Klara, Inc. Sponsored-by: Railway Corporation Closes #17596 --- module/zfs/zvol.c | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c index af855fe41..e03b1899f 100644 --- a/module/zfs/zvol.c +++ b/module/zfs/zvol.c @@ -1442,41 +1442,32 @@ zvol_task_update_status(zvol_task_t *task, uint64_t total, uint64_t done, } } -static const char * -zvol_task_op_msg(zvol_async_op_t op) -{ - switch (op) { - case ZVOL_ASYNC_CREATE_MINORS: - return ("create"); - case ZVOL_ASYNC_REMOVE_MINORS: - return ("remove"); - case ZVOL_ASYNC_RENAME_MINORS: - return ("rename"); - case ZVOL_ASYNC_SET_SNAPDEV: - case ZVOL_ASYNC_SET_VOLMODE: - return ("set property"); - default: - return ("unknown"); - } - - __builtin_unreachable(); - return (NULL); -} - static void zvol_task_report_status(zvol_task_t *task) { +#ifdef ZFS_DEBUG + static const char *const msg[] = { + "create", + "remove", + "rename", + "set snapdev", + "set volmode", + "unknown", + }; if (task->zt_status == 0) return; + zvol_async_op_t op = MIN(task->zt_op, ZVOL_ASYNC_MAX); if (task->zt_error) { dprintf("The %s minors zvol task was not ok, last error %d\n", - zvol_task_op_msg(task->zt_op), task->zt_error); + msg[op], task->zt_error); } else { - dprintf("The %s minors zvol task was not ok\n", - zvol_task_op_msg(task->zt_op)); + dprintf("The %s minors zvol task was not ok\n", msg[op]); } +#else + (void) task; +#endif } /*