Impact: fix not-so-critical but annoying bug
sg_miter_next() returns 0 sized mapping if there is an zero sized sg
entry in the list or at the end of each iteration.  As the users
always check the ->length field, this bug shouldn't be critical other
than causing unnecessary iteration.
Fix it.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
        sg_miter_stop(miter);
 
        /* get to the next sg if necessary.  __offset is adjusted by stop */
-       if (miter->__offset == miter->__sg->length && --miter->__nents) {
-               miter->__sg = sg_next(miter->__sg);
-               miter->__offset = 0;
+       while (miter->__offset == miter->__sg->length) {
+               if (--miter->__nents) {
+                       miter->__sg = sg_next(miter->__sg);
+                       miter->__offset = 0;
+               } else
+                       return false;
        }
 
        /* map the next page */