Re: 2.6.23-rc1-mm1

Satyam Sharma
2007-07-30T22:06:14Z

On Mon, 30 Jul 2007, Christoph Hellwig wrote:

> On Mon, Jul 30, 2007 at 11:27:20AM -0700, Andrew Morton wrote:
> > ho hum, crap. Yes, ioctl_by_bdev() doesn't have a file* and so it makes
> > unlocked_ioctl() rather tricky. We could cook up a `struct file' on the
> > stack (we do that in various places), but that sucks.
> >
> > Christoph, have you any clever suggestions?
>
> There's two ways to deal with it, one ugly and quick and one to do it
> right.
>
> The quick hack is to fake up a file struct similar to blkdev_get().

Gargh, please no. I've been thinking of how to get rid of that fake
on-stack file and dentry stuff from blkdev_get() myself -- it makes
pktcdvd incompatible with 4k kernel stacks ... btw any reason why we
can't just kmalloc() the fake file and dentry there?

> The proper solutions is to get rid of the file (and inode) in the
> blockdev ->ioctl prototype. Only thing keeping is from that is
> floppy.c (and some cut & paste variants for m68k) due to their awkard
> permission checking hacks.

Hmm, care to explain this in more detail?

Satyam