.. | .. |
---|
4034 | 4034 | free_extent_buffer(eb); |
---|
4035 | 4035 | |
---|
4036 | 4036 | /* |
---|
4037 | | - * the filesystem may choose to bump up nr_to_write. |
---|
| 4037 | + * The filesystem may choose to bump up nr_to_write. |
---|
4038 | 4038 | * We have to make sure to honor the new nr_to_write |
---|
4039 | | - * at any time |
---|
| 4039 | + * at any time. |
---|
4040 | 4040 | */ |
---|
4041 | | - nr_to_write_done = wbc->nr_to_write <= 0; |
---|
| 4041 | + nr_to_write_done = (wbc->sync_mode == WB_SYNC_NONE && |
---|
| 4042 | + wbc->nr_to_write <= 0); |
---|
4042 | 4043 | } |
---|
4043 | 4044 | pagevec_release(&pvec); |
---|
4044 | 4045 | cond_resched(); |
---|
.. | .. |
---|
5633 | 5634 | char *dst = (char *)dstv; |
---|
5634 | 5635 | unsigned long i = start >> PAGE_SHIFT; |
---|
5635 | 5636 | |
---|
5636 | | - if (check_eb_range(eb, start, len)) |
---|
| 5637 | + if (check_eb_range(eb, start, len)) { |
---|
| 5638 | + /* |
---|
| 5639 | + * Invalid range hit, reset the memory, so callers won't get |
---|
| 5640 | + * some random garbage for their uninitialzed memory. |
---|
| 5641 | + */ |
---|
| 5642 | + memset(dstv, 0, len); |
---|
5637 | 5643 | return; |
---|
| 5644 | + } |
---|
5638 | 5645 | |
---|
5639 | 5646 | offset = offset_in_page(start); |
---|
5640 | 5647 | |
---|