Normally, all compat_ioctl operations are called without the BKL, the block device operations are an exception to this rule. Make this work the same as the other handlers. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- It would be good to find out whether it has been using the BKL on purpose or by accident, before this patch gets applied. Index: linux-2.6/block/compat_ioctl.c =================================================================== --- linux-2.6.orig/block/compat_ioctl.c +++ linux-2.6/block/compat_ioctl.c @@ -804,10 +804,10 @@ long compat_blkdev_ioctl(struct file *fi lock_kernel(); ret = compat_blkdev_locked_ioctl(inode, file, bdev, cmd, arg); - /* FIXME: why do we assume -> compat_ioctl needs the BKL? */ + unlock_kernel(); + if (ret == -ENOIOCTLCMD && disk->fops->compat_ioctl) ret = disk->fops->compat_ioctl(file, cmd, arg); - unlock_kernel(); if (ret != -ENOIOCTLCMD) return ret; -- -
| Andrew Morton | -mm merge plans for 2.6.23 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Greg KH | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Tomasz Kłoczko | Is it time for remove (crap) ALSA from kernel tree ? |
git: | |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Paweł Staszewski | iproute2 action/policer question |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
