On Sat, Oct 20, 2018 at 02:10:59AM +0100, David Howells wrote:

> @@ -1060,6 +1074,9 @@ void iov_iter_revert(struct iov_iter *i, size_t unroll)
>       }
>       unroll -= i->iov_offset;
>       switch (iov_iter_type(i)) {
> +     case ITER_DISCARD:
> +             i->iov_offset = 0;
> +             return;

... the hell?  That makes no sense whatsoever; what, besides this and 
immediately
preceding part of iov_iter_revert() so much as looks at ->iov_offset for those?
Just have it bugger off before the
        if (unroll <= i->iov_offset) {
                i->iov_offset -= unroll;
                return;
        }
bit...

Reply via email to