On Thu, Jan 10 2008, Chris Mason wrote: > On Thu, 10 Jan 2008 08:54:59 +0000 > Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > > On Thu, Jan 10, 2008 at 09:44:57AM +0100, Jens Axboe wrote: > > > > IMHO this shouldn't be done in the loop driver anyway. > > > > Filesystems have their own effricient extent lookup trees (well, > > > > at least xfs and btrfs do), and we should leverage that instead > > > > of reinventing it. > > > > > > Completely agree, it's just needed right now for this solution > > > since all we have is a crappy bmap() interface to get at those > > > mappings. > > > > So let's fix the interface instead of piling crap ontop of it. As I > > said I think Peter has something to start with so let's beat on it > > until we have something suitable. If we aren't done by end of Feb > > I'm happy to host a hackfest to get it sorted around the fs/storage > > summit.. > > > > Ok, I've been meaning to break my extent_map code up, and this is a > very good reason. I'll work up a sample today based on Jens' code. Great! > The basic goals: > > * Loop (swap) calls into the FS for each mapping. Any caching happens > on the FS side. > * The FS returns an extent, filling any holes We don't want to fill holes for a read, but I guess that's a given? > Swap would need to use an extra call early on for preallocation. > > Step two is having a call back into the FS allow the FS to delay the > bios until commit completion so that COW and delalloc blocks can be > fully on disk when the bios are reported as done. Jens, can you add > some way to queue the bio completions up? Sure, a function to save a completed bio and a function to execute completions on those already stored? -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html