----------- Diffstat output ------------ ./drivers/md/raid5.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) --- ./drivers/md/raid5.c 2002/06/18 03:26:36 1.4 +++ ./drivers/md/raid5.c 2002/06/18 03:32:06 1.5 @@ -633,7 +633,6 @@ else page_offset = (signed)(sector - bio->bi_sector) * -512; bio_for_each_segment(bvl, bio, i) { - char *ba = __bio_kmap(bio, i); int len = bio_iovec_idx(bio,i)->bv_len; int clen; int b_offset = 0; @@ -648,13 +647,16 @@ clen = STRIPE_SIZE - page_offset; else clen = len; - if (len > 0) { + if (clen > 0) { + char *ba = __bio_kmap(bio, i); if (frombio) memcpy(pa+page_offset, ba+b_offset, clen); else memcpy(ba+b_offset, pa+page_offset, clen); - } - __bio_kunmap(bio, i); + __bio_kunmap(bio, i); + } + if (clen < len) /* hit end of page */ + break; page_offset += len; } } - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html