iov_iter_advance() needs to do some non-trivial work when it's given
0 as argument (skip all empty iovecs, mostly).  We used to implement
it via iterate_and_advance(); we no longer do so and for all other
users of iterate_and_advance() zero length is a no-op.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
 #define iterate_and_advance(i, n, v, I, B, K, X) {             \
        if (unlikely(i->count < n))                             \
                n = i->count;                                   \
-       if (i->count) {                                         \
+       if (likely(n)) {                                        \
                size_t skip = i->iov_offset;                    \
                if (likely(iter_is_iovec(i))) {                 \
                        const struct iovec *iov;                \