Re: Vectored AIO breakage for sockets and pipes ?

From: Zach Brown
Date: Thu Jan 18 2007 - 16:41:07 EST


I'm not sure what the best way to fix this is. One option is to always make
a copy of the iovec and pass that down. Any other thoughts ?

Can we use this as another motivation to introduce an iovec container struct instead of passing a raw iov/seg? The transition could turn hand-rolled functions like pipe_iov_copy_to_user() into functions that this iovec struct API provides.

I don't know if this would specifically help aio_rw_vect_retry() to know if it should advance the iovec on behalf of its callee who returned positive result codes.

Maybe it could use the API to discover a case where ret < size && cur_pos(iov_struct) == initial_pos(iov_struct) via some iovec pos query before rw_op is called?

Or maybe the introduction of the API could normalize where the responsibility of advancing the iovec lies. That might be a bit much.

Just talkin' here.

- z
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/