Re: How to locate struct file * from a bio?

From: Al Viro
Date: Wed Jan 31 2007 - 09:52:17 EST


On Wed, Jan 31, 2007 at 02:44:23PM +0000, Al Viro wrote:
> On Wed, Jan 31, 2007 at 09:34:54AM -0500, Eddie Pettis wrote:
> > Short question: Is it possible to locate the struct file * associated
> > with a bio? If so, how?
>
> Obviously impossible. For one thing, there might very well be no inode,
> let alone struct file, associated with bio in question (e.g. for any
> filesystem metadata). Moreover, the same on-disk object may get IO
> without any stuct file at all (e.g. a directory) or with many struct
> file (e.g. any file independently opened by several processes; no matter
> how many of them do reads, we'll get stuff pulled into page cache the
> same way (and once, not once per struct file).

BTW, here's a good testcase for you: /etc/ld.so.cache; it's accessed at
practically any execve(), so it should be very close to top of the
popularity list (right there with /lib/libc.so.6)...
-
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/