Re: [RFC] [PATCH 6/8] inode-diet: Move i_cindex from struct inode to struct file

Stefan Richter
2006-06-19T21:52:17Z

Theodore Tso wrote:
> On Mon, Jun 19, 2006 at 08:37:56PM +0100, Al Viro wrote:
>>>NAK. Please, take it to the union into cdev part.
>>
>>Explanation: the whole point of that sucker is to avoid i_rdev use
>>in drivers, switching to i_cdev + i_cindex. _Especially_ in open().
>>There is a bunch of other drivers that would get cleaner from that,
>>including a lot of tty code.
>
> The problem is that we already have more stuff in the cdev union
> (list_head's are *big*, especially on Opterons), so moving it there
> doesn't actually save us anything.
>
> Moving it into struct file however should be good enough clean up the
> character devices drivers that you are concerned about, however. They
> are passed the struct file pointer in the file_operations->open call.
> So we can clean up the tty code, et. al, by using file->f_cindex just
> as easily.
>
> Furthermore, the inode->i_cindex isn't guaranteed to be valid until
> the high-level vfs open code is called anyway, so you might as well
> tell people to reference it from filp->f_cindex in the device driver's
> open() routine.
>
> Does that make sense?

The patch is obviously proper for usage by any file_operations->open()
users like the single current one (or two actually, dv1394_open() and
video1394_open()). I don't know if there are any contrary usages planned
in other subsystems.
--
Stefan Richter
-=====-=-==- -==- =--==