Messages in this thread Patch in this message | | | Date | Tue, 17 May 2005 09:03:05 +0200 | From | Willy Tarreau <> | Subject | Re: [PATCH] Fix root hole in raw device |
| |
On Tue, May 17, 2005 at 05:57:48AM +0100, Al Viro wrote: > On Mon, May 16, 2005 at 09:37:48PM -0700, Greg KH wrote: > > @@ -122,7 +122,7 @@ > > { > > struct block_device *bdev = filp->private_data; > > > > - return ioctl_by_bdev(bdev, command, arg); > > + return blkdev_ioctl(bdev->bd_inode, filp, command, arg); > > } > > That is not quite correct. You are passing very odd filp to ->ioctl()... > Old variant gave NULL, which is also not too nice, though.
2.4 already does it in a cleaner manner :
err = -EINVAL; if (b && b->bd_inode && b->bd_op && b->bd_op->ioctl) { err = b->bd_op->ioctl(b->bd_inode, NULL, command, arg); } return err;
So may be something like this would be better (hand-written) :
@@ -122,7 +122,9 @@ { struct block_device *bdev = filp->private_data; int err = -EINVAL; - return ioctl_by_bdev(bdev, command, arg); + if (bdev && bdev->bd_inode) + err = blkdev_ioctl(bdev->bd_inode, filp, command, arg); + return err; }
Willy - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |