On Thursday 10 June 2004 21:36, Dave Olien wrote: > On Thu, Jun 10, 2004 at 09:24:01PM -0500, Kevin Corry wrote: > > Now I'm not sure which BUG() call you're referring to. The sync_io() and > > async_io() routines both eventually go through the same common code, > > dispatch_io(). I was assuming you were referring to the BUG() statement > > in bvec_index(), called from bio_set_alloc(), called from dispatch_io(). > > You're right again. The BUG() in sync_io() was only for READs. > That was the one I was referring to. > > I agree with making that an error case, as you did in your > patch. How about making async_io() also fail for READS > to multiple regions.... just for symmetry? Yep, I'll add that to my tree. > > > I'll put some thought into NOT using the bio_vec array to store > > > the region number. > > > > I'll definitely agree that it would be nice to find a better way to store > > the region number than allocating two extra bvecs. That is definitely why > > snapshot chunks cannot go up to 1024k. I recall tracking this down when > > you first reported the snapshot chunk-size problem a while back. > > Actually, ONE extra bvec is for storing the region number. The code > adds an ADDITONAL bvec I think because of the way it's handling offsets > into pages. I'm thinking of at re-writing do_region(), patterning > it after the code in __bio_map_user(). > > I'm going to be out a lot tomorrow, so I'll probably be working > on this some over the week end. Maybe I'll have something for review > by Monday. Sounds good. I'm eager to see what you come up with. -- Kevin Corry kevcorry@xxxxxxxxxx http://evms.sourceforge.net