aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/mtd_blkdevs.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2010-07-08 04:18:46 -0400
committerJens Axboe <jaxboe@fusionio.com>2010-08-07 12:25:00 -0400
commit8a6cfeb6deca3a8fefd639d898b0d163c0b5d368 (patch)
tree9a633ad48c3b1ada0519ee7bade0602f940037f6 /drivers/mtd/mtd_blkdevs.c
parent34484062445fe905bf02c72f87ddda21881acda3 (diff)
block: push down BKL into .locked_ioctl
As a preparation for the removal of the big kernel lock in the block layer, this removes the BKL from the common ioctl handling code, moving it into every single driver still using it. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'drivers/mtd/mtd_blkdevs.c')
-rw-r--r--drivers/mtd/mtd_blkdevs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
index 475af42745c..8c83b11a77d 100644
--- a/drivers/mtd/mtd_blkdevs.c
+++ b/drivers/mtd/mtd_blkdevs.c
@@ -15,6 +15,7 @@
15#include <linux/blkdev.h> 15#include <linux/blkdev.h>
16#include <linux/blkpg.h> 16#include <linux/blkpg.h>
17#include <linux/spinlock.h> 17#include <linux/spinlock.h>
18#include <linux/smp_lock.h>
18#include <linux/hdreg.h> 19#include <linux/hdreg.h>
19#include <linux/init.h> 20#include <linux/init.h>
20#include <linux/mutex.h> 21#include <linux/mutex.h>
@@ -237,6 +238,7 @@ static int blktrans_ioctl(struct block_device *bdev, fmode_t mode,
237 if (!dev) 238 if (!dev)
238 return ret; 239 return ret;
239 240
241 lock_kernel();
240 mutex_lock(&dev->lock); 242 mutex_lock(&dev->lock);
241 243
242 if (!dev->mtd) 244 if (!dev->mtd)
@@ -250,6 +252,7 @@ static int blktrans_ioctl(struct block_device *bdev, fmode_t mode,
250 } 252 }
251unlock: 253unlock:
252 mutex_unlock(&dev->lock); 254 mutex_unlock(&dev->lock);
255 unlock_kernel();
253 blktrans_dev_put(dev); 256 blktrans_dev_put(dev);
254 return ret; 257 return ret;
255} 258}
@@ -258,7 +261,7 @@ static const struct block_device_operations mtd_blktrans_ops = {
258 .owner = THIS_MODULE, 261 .owner = THIS_MODULE,
259 .open = blktrans_open, 262 .open = blktrans_open,
260 .release = blktrans_release, 263 .release = blktrans_release,
261 .locked_ioctl = blktrans_ioctl, 264 .ioctl = blktrans_ioctl,
262 .getgeo = blktrans_getgeo, 265 .getgeo = blktrans_getgeo,
263}; 266};
264 267