On Mon, Sep 21, 2020 at 03:21:35PM +0000, David Laight wrote:

> You really don't want to be looping through the array twice.

Profiles, please.

> I think the 'length' check can be optimised to do something like:
>       for (...) {
>               ssize_t len = (ssize_t)iov[seg].iov_len;
>               ret += len;
>               len_hi += (unsigned long)len >> 20;
>       }
>       if (len_hi) {
>               /* Something potentially odd in the lengths.
>                * Might just be a very long fragment.
>                * Check the individial values. */
>               Add the exiting loop here.
>       }

Far too ugly to live.

Reply via email to