On Thursday 10 June 2004 21:04, Dave Olien wrote: > Yup, you're right. I guess that explains why the async_io() routine > doesn't have the same BUG() calls. All the raid1 calls are to async_io(). 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(). > 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. > So if the multi-region code works for async_io(), is there any reason > we shouldn't just remove the BUG() calls from sync_io(), to keep > the interfaces symmetric? Again, I'm not sure which BUG() you're referring to here. My patch earlier removed one from sync_io(), but that was simply a check to make sure no one was trying to *read* to multiple regions at the same time (which should be handled by returning an error instead of BUG()ing). -- Kevin Corry kevcorry@xxxxxxxxxx http://evms.sourceforge.net