summaryrefslogtreecommitdiffstats
path: root/drivers/block/cciss.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/block/cciss.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/block/cciss.c')
-rw-r--r--drivers/block/cciss.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 11b377762b8e..a6c0494dd054 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -179,6 +179,8 @@ static irqreturn_t do_cciss_intx(int irq, void *dev_id);
179static irqreturn_t do_cciss_msix_intr(int irq, void *dev_id); 179static irqreturn_t do_cciss_msix_intr(int irq, void *dev_id);
180static int cciss_open(struct block_device *bdev, fmode_t mode); 180static int cciss_open(struct block_device *bdev, fmode_t mode);
181static int cciss_release(struct gendisk *disk, fmode_t mode); 181static int cciss_release(struct gendisk *disk, fmode_t mode);
182static int do_ioctl(struct block_device *bdev, fmode_t mode,
183 unsigned int cmd, unsigned long arg);
182static int cciss_ioctl(struct block_device *bdev, fmode_t mode, 184static int cciss_ioctl(struct block_device *bdev, fmode_t mode,
183 unsigned int cmd, unsigned long arg); 185 unsigned int cmd, unsigned long arg);
184static int cciss_getgeo(struct block_device *bdev, struct hd_geometry *geo); 186static int cciss_getgeo(struct block_device *bdev, struct hd_geometry *geo);
@@ -237,7 +239,7 @@ static const struct block_device_operations cciss_fops = {
237 .owner = THIS_MODULE, 239 .owner = THIS_MODULE,
238 .open = cciss_open, 240 .open = cciss_open,
239 .release = cciss_release, 241 .release = cciss_release,
240 .locked_ioctl = cciss_ioctl, 242 .ioctl = do_ioctl,
241 .getgeo = cciss_getgeo, 243 .getgeo = cciss_getgeo,
242#ifdef CONFIG_COMPAT 244#ifdef CONFIG_COMPAT
243 .compat_ioctl = cciss_compat_ioctl, 245 .compat_ioctl = cciss_compat_ioctl,
@@ -1057,8 +1059,6 @@ static int cciss_release(struct gendisk *disk, fmode_t mode)
1057 return 0; 1059 return 0;
1058} 1060}
1059 1061
1060#ifdef CONFIG_COMPAT
1061
1062static int do_ioctl(struct block_device *bdev, fmode_t mode, 1062static int do_ioctl(struct block_device *bdev, fmode_t mode,
1063 unsigned cmd, unsigned long arg) 1063 unsigned cmd, unsigned long arg)
1064{ 1064{
@@ -1069,6 +1069,8 @@ static int do_ioctl(struct block_device *bdev, fmode_t mode,
1069 return ret; 1069 return ret;
1070} 1070}
1071 1071
1072#ifdef CONFIG_COMPAT
1073
1072static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode, 1074static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode,
1073 unsigned cmd, unsigned long arg); 1075 unsigned cmd, unsigned long arg);
1074static int cciss_ioctl32_big_passthru(struct block_device *bdev, fmode_t mode, 1076static int cciss_ioctl32_big_passthru(struct block_device *bdev, fmode_t mode,