[dm-devel] [RFC, PATCH] remove signal handling from dm-io.c, sync_io()
Dave Olien
dmo at osdl.org
Fri Jun 11 02:36:34 UTC 2004
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?
Sorry for any confusion. I'm guilty of typing before looking carefully.
>
> > 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.
More information about the dm-devel
mailing list