mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
scatterlist: make sure sg_miter_next() doesn't return 0 sized mappings
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>
This commit is contained in:
parent
0910697403
commit
23c560a99d
1 changed files with 6 additions and 3 deletions
|
@ -347,9 +347,12 @@ bool sg_miter_next(struct sg_mapping_iter *miter)
|
|||
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 */
|
||||
|
|
Loading…
Reference in a new issue