Hi Stephen,

I have some trouble with using brw_kiovec when the vector contains more
than one kiobuf. 

Suppose we pass in an array of 2 kiobufs, each for one page. 

It seems to me that the invocation of do_kio in the inner (block) loop
will not happen, neither for iovec[0], nor for iovec[1], since we won't
hit KIO_MAX_SECTORS.

Then after we get out of the loop, we do io on iovec[1] -- that leaves
iovec[0] untouched. 

I think the correct fix would not just move the do_kio outside of the
iovec loop into that loop, because then we start waiting on each iobuf: we
need an io_count for the entire vector, not just for each buffer in it. 

Hmm, am I perhaps just sleepy, or what is going on? 

- Peter -

Reply via email to