On Thu, 10 Jan 2008 14:03:24 +0100 Jens Axboe <jens.axboe@xxxxxxxxxx> wrote: > 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! Grin, we'll see how the sample looks. > > > 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? Right. > > > 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? > Sounds right, I'm mostly looking for a way to aggregate a few writes to make the commits a little larger. -chris - 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