[PATCH] dm verity: avoid duplicate tasklet static-key references
From: Samuel Moelius
Date: Mon Jun 08 2026 - 20:36:27 EST
dm-verity parses optional arguments twice during target construction.
When `try_verify_in_tasklet` is present, each parse pass increments the
`use_bh_wq_enabled` static key, but the target destructor decrements it
only once.
Creating and removing such a target can therefore leave the static key
enabled after the target is gone.
Only increment the static key when the option first enables tasklet
verification for the target.
Assisted-by: Codex:gpt-5.5-cyber-preview
Signed-off-by: Samuel Moelius <sam.moelius@xxxxxxxxxxxxxxx>
---
drivers/md/dm-verity-target.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index 9a9847f94c46..c06ccf7ee1b9 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -1262,8 +1262,10 @@ static int verity_parse_opt_args(struct dm_arg_set *as, struct dm_verity *v,
continue;
} else if (!strcasecmp(arg_name, DM_VERITY_OPT_TASKLET_VERIFY)) {
- v->use_bh_wq = true;
- static_branch_inc(&use_bh_wq_enabled);
+ if (!v->use_bh_wq) {
+ v->use_bh_wq = true;
+ static_branch_inc(&use_bh_wq_enabled);
+ }
continue;
} else if (verity_is_fec_opt_arg(arg_name)) {
--
2.43.0