Re: [3/4] kevent: AIO, aio_sendfile() implementation.

From: Christoph Hellwig
Date: Wed Jul 26 2006 - 06:11:55 EST


On Wed, Jul 26, 2006 at 02:08:49PM +0400, Evgeniy Polyakov wrote:
> On Wed, Jul 26, 2006 at 11:00:13AM +0100, Christoph Hellwig (hch@xxxxxxxxxxxxx) wrote:
> > > struct address_space_operations ext2_aops = {
> > > + .get_block = ext2_get_block,
> >
> > No way in hell. For whatever you do please provide a interface at
> > the readpage/writepage/sendfile/etc abstraction layer. get_block is
> > nothing that can be exposed to the common code.
>
> Compare this with sync read methods - all they do is exactly the same
> operations with low-level blocks, which are combined into nice exported
> function, so there is _no_ readpage layer - it calls only one function
> which works with blocks.

No. The abtraction layer there is ->readpage(s). _A_ common implementation
works with a get_block callback from the filesystem, but there are various
others. We've been there before, up to mid-2.3.x we had a get_block inode
operation and we got rid of it because it is the wrong abstraction.

> So it is not a technical problem, but political one.

It's a technical problem, and it's called get you abstractions right. And
ontop of that a political one and that's called get your abstraction coherent.
If you managed to argue all of us into accept that get_block is the right
abstraction (and as I mentioned above that's technically not true) you'd
still have the burden to update everything to use the same abstraction.
-
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/