From: Mikulas Patocka Free path selector if the arguments are invalid. This command (note that it is invalid) causes reference leak on module "dm_round_robin" and prevents the module from being removed. dmsetup create --table '0 2 multipath 0 0 1 1 round-robin /dev/sdh' mpath0 Signed-off-by: Mikulas Patocka Signed-off-by: Alasdair G Kergon --- drivers/md/dm-mpath.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) Index: linux-2.6.26-rc8/drivers/md/dm-mpath.c =================================================================== --- linux-2.6.26-rc8.orig/drivers/md/dm-mpath.c 2008-06-30 11:11:55.000000000 +0100 +++ linux-2.6.26-rc8/drivers/md/dm-mpath.c 2008-06-30 11:13:44.000000000 +0100 @@ -530,8 +530,10 @@ static int parse_path_selector(struct ar } r = read_param(_params, shift(as), &ps_argc, &ti->error); - if (r) + if (r) { + dm_put_path_selector(pst); return -EINVAL; + } r = pst->create(&pg->ps, ps_argc, as->argv); if (r) {