Messages in this thread | | | Date | Thu, 13 Nov 2014 13:05:09 +0000 | From | Al Viro <> | Subject | Re: [PATCH] Fix thinko in iov_iter_single_seg_count |
| |
On Thu, Nov 13, 2014 at 08:15:23PM +1100, Paul Mackerras wrote: > The branches of the if (i->type & ITER_BVEC) statement in > iov_iter_single_seg_count() are the wrong way around; if ITER_BVEC is > clear then we use i->bvec, when we should be using i->iov. This fixes > it. > > In my case, the symptom that this caused was that a KVM guest doing > filesystem operations on a virtual disk would result in one of qemu's > threads on the host going into an infinite loop in > generic_perform_write(). The loop would hit the copied == 0 case and > call iov_iter_single_seg_count() to reduce the number of bytes to try > to process, but because of the error, iov_iter_single_seg_count() > would just return i->count and the loop made no progress and continued > forever.
ACK. Applied, will push today.
| |