Re: Linux Buffer Cache Does Not Support Mirroring

Jeff V. Merkey (jmerkey@timpanogas.com)
Tue, 02 Nov 1999 12:30:01 -0700


Stephen,

This is only supported on the newer kernels. Older Linux (2.0.38) does
not support a general purpose interface, or support the callback. This
means that we will need to support multiple methods of doing this I/O to
cover all Linux versions. It appears we will be synchronous on 2.0.38
and older Linux. This is assuming I can find a way to get around the
fact that all of the functions needing to be called are not declared
"static" as they are today.

Jeff

"Stephen C. Tweedie" wrote:
>
> Hi,
>
> On Tue, 02 Nov 1999 09:56:28 -0700, "Jeff V. Merkey"
> <jmerkey@timpanogas.com> said:
>
> > I looked at the brw_page code. While everyone calls this an "async"
> > interface, in fact, it uses the same semantic as a sync interface and
> > does not allow support for callbacks.
>
> I didn't say to use brw_page --- I said to look at brw_page. It sets up
> a vector of buffer_heads for the IO, and --- crucially --- initialises
> them with a callback, end_buffer_io_async.
>
> _That_ is where you get async callback for temporary buffer_heads
> submitted to the IO layer. You can replace that callback function with
> anything you want. No, brw_page won't do an arbitrary callback for you,
> but it's a perfect example from which to construct your own function
> which does exactly the IO you want, with exactly the buffer-cache
> coherency you want, and exactly the callback you want at the end of it.
>
> --Stephen

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