[PATCH] dm: fix find_device race
[linux-2.6.git] / drivers / md / dm-ioctl.c
index d13bb15..4510ad8 100644 (file)
@@ -606,9 +606,14 @@ static struct hash_cell *__find_device_hash_cell(struct dm_ioctl *param)
                return __get_name_cell(param->name);
 
        md = dm_get_md(huge_decode_dev(param->dev));
-       if (md)
-               mdptr = dm_get_mdptr(md);
+       if (!md)
+               goto out;
 
+       mdptr = dm_get_mdptr(md);
+       if (!mdptr)
+               dm_put(md);
+
+out:
        return mdptr;
 }