Re: [PATCH 01/15] dm: support ioctls on mapped devices

From: Christoph Hellwig
Date: Fri Jun 23 2006 - 05:59:08 EST


On Thu, Jun 22, 2006 at 09:55:51AM -0700, Andrew Morton wrote:
> > - long (*unlocked_ioctl) (struct file *, unsigned, unsigned long);
> > + long (*unlocked_ioctl) (struct inode *, struct file *, unsigned, unsigned long);
> >
> > so it can be used for block devices?
>
> Perhaps it should (have). It's a bit nasty, but we do have at least two
> internal callers who don't have a file*.
>
> The alternative would be to cook up a fake file* like blkdev_get() does,
> but we don't want to propagate that practice.

Faking up the file struct is the only viable short-term option. It
should be done in ioctl_by_bdev which every kernel blockdevice ioctl
user should use. Long-term we should not pass a struct file but
a struct block_device *, but braindamage in floppy.c prevents that.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/