On Tue, May 17, 2005 at 09:03:05AM +0200, Willy Tarreau wrote:
> 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);
^^^^^^^
Sorry, I forgot it...
I meant the same with the NULL. Is it OK ?
Willy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]