diff --git a/sys/dev/disk/dm/flakey/dm_target_flakey.c b/sys/dev/disk/dm/flakey/dm_target_flakey.c index 1111111..2222222 100644 --- a/sys/dev/disk/dm/flakey/dm_target_flakey.c +++ b/sys/dev/disk/dm/flakey/dm_target_flakey.c @@ -114,6 +114,9 @@ dm_target_flakey_init(dm_table_entry_t *table_en, int argc, char **argv) dm_table_init_target(table_en, tfc); return 0; fail: + /* Release the pdev reference taken by dm_pdev_insert() above; + * dmp is NULL only when the insert itself failed. */ + if (dmp != NULL) + dm_pdev_decr(dmp); kfree(tfc, M_DMFLAKEY); return err; }