~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/__init__.py

Merge readv fix.

Show diffs side-by-side

added added

removed removed

Lines of Context:
673
673
                        yield None
674
674
                return empty_yielder()
675
675
            # expand by page size at either end
676
 
            expansion = self.recommended_page_size()
677
 
            reduction = expansion / 2
 
676
            maximum_expansion = self.recommended_page_size()
678
677
            new_offsets = []
679
678
            for offset, length in offsets:
 
679
                expansion = maximum_expansion - length
 
680
                if expansion < 0:
 
681
                    # we're asking for more than the minimum read anyway.
 
682
                    expansion = 0
 
683
                reduction = expansion / 2
680
684
                new_offset = offset - reduction
681
685
                new_length = length + expansion
682
686
                if new_offset < 0:
683
687
                    # don't ask for anything < 0
684
 
                    new_length -= new_offset
685
688
                    new_offset = 0
686
689
                if (upper_limit is not None and
687
690
                    new_offset + new_length > upper_limit):