Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.git] / drivers / md / dm.c
index c00bcdc..d7e6399 100644 (file)
 
 #define DM_MSG_PREFIX "core"
 
-#ifdef CONFIG_PRINTK
-/*
- * ratelimit state to be used in DMXXX_LIMIT().
- */
-DEFINE_RATELIMIT_STATE(dm_ratelimit_state,
-                      DEFAULT_RATELIMIT_INTERVAL,
-                      DEFAULT_RATELIMIT_BURST);
-EXPORT_SYMBOL(dm_ratelimit_state);
-#endif
-
 /*
  * Cookies are numeric values sent with CHANGE and REMOVE
  * uevents while resuming, removing or renaming the device.
@@ -2695,11 +2685,15 @@ struct mapped_device *dm_get_from_kobject(struct kobject *kobj)
 
        md = container_of(kobj, struct mapped_device, kobj_holder.kobj);
 
-       if (test_bit(DMF_FREEING, &md->flags) ||
-           dm_deleting_md(md))
-               return NULL;
-
+       spin_lock(&_minor_lock);
+       if (test_bit(DMF_FREEING, &md->flags) || dm_deleting_md(md)) {
+               md = NULL;
+               goto out;
+       }
        dm_get(md);
+out:
+       spin_unlock(&_minor_lock);
+
        return md;
 }