UPSTREAM: PM / devfreq: rk3399_dmc: Use the resource-managed function to add devfreq dev
[firefly-linux-kernel-4.4.55.git] / drivers / md / dm-table.c
index 061152a437300bbfacfbbc6e475c3935df7cecb6..b3d78bba3a79a450f8dc92b9b3bb37e2d989e107 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/vmalloc.h>
 #include <linux/blkdev.h>
 #include <linux/namei.h>
+#include <linux/mount.h>
 #include <linux/ctype.h>
 #include <linux/string.h>
 #include <linux/slab.h>
@@ -364,6 +365,26 @@ static int upgrade_mode(struct dm_dev_internal *dd, fmode_t new_mode,
        return 0;
 }
 
+/*
+ * Convert the path to a device
+ */
+dev_t dm_get_dev_t(const char *path)
+{
+       dev_t uninitialized_var(dev);
+       struct block_device *bdev;
+
+       bdev = lookup_bdev(path);
+       if (IS_ERR(bdev))
+               dev = name_to_dev_t(path);
+       else {
+               dev = bdev->bd_dev;
+               bdput(bdev);
+       }
+
+       return dev;
+}
+EXPORT_SYMBOL_GPL(dm_get_dev_t);
+
 /*
  * Add a device to the list, or just increment the usage count if
  * it's already present.
@@ -372,23 +393,15 @@ int dm_get_device(struct dm_target *ti, const char *path, fmode_t mode,
                  struct dm_dev **result)
 {
        int r;
-       dev_t uninitialized_var(dev);
+       dev_t dev;
        struct dm_dev_internal *dd;
        struct dm_table *t = ti->table;
-       struct block_device *bdev;
 
        BUG_ON(!t);
 
-       /* convert the path to a device */
-       bdev = lookup_bdev(path);
-       if (IS_ERR(bdev)) {
-               dev = name_to_dev_t(path);
-               if (!dev)
-                       return -ENODEV;
-       } else {
-               dev = bdev->bd_dev;
-               bdput(bdev);
-       }
+       dev = dm_get_dev_t(path);
+       if (!dev)
+               return -ENODEV;
 
        dd = find_device(&t->devices, dev);
        if (!dd) {