Re: How does the disk buffer cache work?

From: Andrew Morton (akpm@digeo.com)
Date: Mon Dec 30 2002 - 23:14:03 EST


Matthew Zahorik wrote:
>
> On Mon, 30 Dec 2002, Andrew Morton wrote:
>
> > > [.. the next function call in read_cache_page() is lock_page(), which we
> > > hang forever on ..]
> >
> > lock_page() will sleep until the page is unlocked. The page is unlocked
> > from end_buffer_io_sync(), which is called from within the context of
> > the disk device driver's interrupt handler.
>
> Okay, I'll track it down there. Probably the driver not calling
> end_buffer_io_sync() when timed out. When the bad drive is detached,
> things work fine - leading me to believe that hardware and interrupt
> routing wise things are okay.
>

It won't call end_buffer_io_sync() explicitly - it calls the function which
is pointed at by the relevant buffer's b_end_io vector. Typically that
will point at end_buffer_io_aysnc() or end_buffer_io_sync()
-
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/



This archive was generated by hypermail 2b29 : Tue Dec 31 2002 - 22:00:18 EST