Re: [PATCH] Fix root hole in raw device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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]
  Powered by Linux