diff options
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/devices/block2mtd.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c index a9e2d3b38aeb..aa557beb8f51 100644 --- a/drivers/mtd/devices/block2mtd.c +++ b/drivers/mtd/devices/block2mtd.c | |||
@@ -224,7 +224,7 @@ static void block2mtd_free_device(struct block2mtd_dev *dev) | |||
224 | if (dev->blkdev) { | 224 | if (dev->blkdev) { |
225 | invalidate_mapping_pages(dev->blkdev->bd_inode->i_mapping, | 225 | invalidate_mapping_pages(dev->blkdev->bd_inode->i_mapping, |
226 | 0, -1); | 226 | 0, -1); |
227 | close_bdev_exclusive(dev->blkdev, FMODE_READ|FMODE_WRITE); | 227 | blkdev_put(dev->blkdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); |
228 | } | 228 | } |
229 | 229 | ||
230 | kfree(dev); | 230 | kfree(dev); |
@@ -234,7 +234,7 @@ static void block2mtd_free_device(struct block2mtd_dev *dev) | |||
234 | /* FIXME: ensure that mtd->size % erase_size == 0 */ | 234 | /* FIXME: ensure that mtd->size % erase_size == 0 */ |
235 | static struct block2mtd_dev *add_device(char *devname, int erase_size) | 235 | static struct block2mtd_dev *add_device(char *devname, int erase_size) |
236 | { | 236 | { |
237 | const fmode_t mode = FMODE_READ | FMODE_WRITE; | 237 | const fmode_t mode = FMODE_READ | FMODE_WRITE | FMODE_EXCL; |
238 | struct block_device *bdev; | 238 | struct block_device *bdev; |
239 | struct block2mtd_dev *dev; | 239 | struct block2mtd_dev *dev; |
240 | char *name; | 240 | char *name; |
@@ -255,17 +255,8 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size) | |||
255 | to resolve the device name by other means. */ | 255 | to resolve the device name by other means. */ |
256 | 256 | ||
257 | dev_t devt = name_to_dev_t(devname); | 257 | dev_t devt = name_to_dev_t(devname); |
258 | if (devt) { | 258 | if (devt) |
259 | bdev = open_by_devnum(devt, mode); | 259 | bdev = open_by_devnum(devt, mode, dev); |
260 | if (!IS_ERR(bdev)) { | ||
261 | int ret; | ||
262 | ret = bd_claim(bdev, dev); | ||
263 | if (ret) { | ||
264 | blkdev_put(bdev, mode); | ||
265 | bdev = ERR_PTR(ret); | ||
266 | } | ||
267 | } | ||
268 | } | ||
269 | } | 260 | } |
270 | #endif | 261 | #endif |
271 | 262 | ||