Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261307AbVEQHcO (ORCPT ); Tue, 17 May 2005 03:32:14 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261305AbVEQHcO (ORCPT ); Tue, 17 May 2005 03:32:14 -0400 Received: from parcelfarce.linux.theplanet.co.uk ([195.92.249.252]:26793 "EHLO parcelfarce.linux.theplanet.co.uk") by vger.kernel.org with ESMTP id S261321AbVEQHcJ (ORCPT ); Tue, 17 May 2005 03:32:09 -0400 Date: Tue, 17 May 2005 08:32:28 +0100 From: Al Viro To: Willy Tarreau Cc: Greg K-H , linux-kernel@vger.kernel.org, sct@redhat.com Subject: Re: [PATCH] Fix root hole in raw device Message-ID: <20050517073228.GR1150@parcelfarce.linux.theplanet.co.uk> References: <11163046682662@kroah.com> <11163046681444@kroah.com> <20050517045748.GO1150@parcelfarce.linux.theplanet.co.uk> <20050517070305.GA31135@alpha.home.local> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050517070305.GA31135@alpha.home.local> User-Agent: Mutt/1.4.1i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1348 Lines: 35 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) : > + if (bdev && bdev->bd_inode) > + err = blkdev_ioctl(bdev->bd_inode, filp, command, arg); > + return err; Huh? These checks are useless and you are still passing a struct file * that has nothing to do with what ->ioctl() expects. - 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/