Messages in this thread | | | Date | Tue, 17 May 2005 09:07:35 +0200 | From | Willy Tarreau <> | Subject | Re: [PATCH] Fix root hole in raw device |
| |
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 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/
| |