On Tuesday, 16. January 2007 06:37, Nate Diller wrote:
On 1/15/07, Christoph Hellwig [off-list ref] wrote:
quoted
On Mon, Jan 15, 2007 at 05:54:50PM -0800, Nate Diller wrote:
quoted
Convert code using iocb->ki_left to use the more generic iov_length() call.
No way. We need to reduce the numer of iovec traversals, not adding
more of them.
ok, I can work on a version of this that uses struct iodesc. Maybe
something like this?
struct iodesc {
struct iovec *iov;
unsigned long nr_segs;
size_t nbytes;
};
I suppose it's worth doing the iodesc thing along with this patchset
anyway, since it'll avoid an extra round of interface churn.
What about this instead
struct iodesc {
struct iovec *iov;
unsigned long nr_segs;
unsigned long seg_limit;
size_t nr_bytes;
};
That will enable resizeable iodescs with partial completion state and
will enable successive filling of an iodesc with iovs.
This will be needed anyway. I built an complete short userspace
module for that already. I can post and GPLv2 it somewhere, if people
are interested.
Regards
Ingo Oeser