Merge branch 'for-greg' of git://gitorious.org/usb/usb into usb-linus
[pandora-kernel.git] / drivers / mtd / devices / block2mtd.c
index 2cf0cc6..97183c8 100644 (file)
@@ -224,7 +224,7 @@ static void block2mtd_free_device(struct block2mtd_dev *dev)
        if (dev->blkdev) {
                invalidate_mapping_pages(dev->blkdev->bd_inode->i_mapping,
                                        0, -1);
-               close_bdev_exclusive(dev->blkdev, FMODE_READ|FMODE_WRITE);
+               blkdev_put(dev->blkdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
        }
 
        kfree(dev);
@@ -234,6 +234,7 @@ static void block2mtd_free_device(struct block2mtd_dev *dev)
 /* FIXME: ensure that mtd->size % erase_size == 0 */
 static struct block2mtd_dev *add_device(char *devname, int erase_size)
 {
+       const fmode_t mode = FMODE_READ | FMODE_WRITE | FMODE_EXCL;
        struct block_device *bdev;
        struct block2mtd_dev *dev;
        char *name;
@@ -246,7 +247,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size)
                return NULL;
 
        /* Get a handle on the device */
-       bdev = open_bdev_exclusive(devname, FMODE_READ|FMODE_WRITE, NULL);
+       bdev = blkdev_get_by_path(devname, mode, dev);
 #ifndef MODULE
        if (IS_ERR(bdev)) {
 
@@ -254,9 +255,8 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size)
                   to resolve the device name by other means. */
 
                dev_t devt = name_to_dev_t(devname);
-               if (devt) {
-                       bdev = open_by_devnum(devt, FMODE_WRITE | FMODE_READ);
-               }
+               if (devt)
+                       bdev = blkdev_get_by_dev(devt, mode, dev);
        }
 #endif
 
@@ -295,7 +295,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size)
        dev->mtd.owner = THIS_MODULE;
 
        if (add_mtd_device(&dev->mtd)) {
-               /* Device didnt get added, so free the entry */
+               /* Device didn't get added, so free the entry */
                goto devinit_err;
        }
        list_add(&dev->list, &blkmtd_device_list);