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/drivers/md/dm-mpath.c =================================================================== --- linux-2.6.26.orig/drivers/md/dm-mpath.c 2008-07-20 18:44:28.000000000 +0100 +++ linux-2.6.26/drivers/md/dm-mpath.c 2008-07-20 18:45:53.000000000 +0100 @@ -525,8 +525,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) {