On Mon, Sep 12, 2011 at 11:56:09AM +0200, Peter Zijlstra wrote: > On Mon, 2011-09-12 at 10:34 +0100, Mel Gorman wrote: > > On Mon, Sep 12, 2011 at 11:04:45AM +0200, Peter Zijlstra wrote: > > > On Fri, 2011-09-09 at 09:36 -0400, Christoph Hellwig wrote: > > > > The equivalent of ->direct_IO should be used for both reads and writes. > > > > > > So the difference between DIO and swapIO is that swapIO needs the block > > > map pinned in memory.. So at the very least you'll need those > > > swap_{activate,deactivate} aops. The read/write-page thingies could > > > indeed be shared with DIO. > > > > > > > I'm travelling at the moment so it'll be later in the week when I investigate > > properly but I agree swap_[de|a]ctivate are still necessary. NFS does not > > need to pin a block map but it's still necessary for calling xs_set_memalloc. > > Right.. but I think the hope was that we could replace the current swap > bmap hackery with this and simplify the normal swap bits. But yeah, > networked filesystems don't really bother with block maps on the client > side ;-) I took a look at what was involved with doing the block lookups in ext4. It's what led to patch 4 of this series because it was necessary that the filesystem get the same information as the generic handler. It got a bit messy but looked like it would have worked if I kept at it. I stopped because I did nt see a major advantage with swap_writepage() looking up the block map instead of having looked it up in advance with bmap() but I could have missed something. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html