If an indirect block is being asked to incorporate an address that
is very must after the address of the block, it has to count all
the way up to that number, which is a waste of time.
So if there is an opportunity to jump forward, take it.
if (len >= 6) {
phys = decode48(buf);
len -= 6;
- }
+ } else if (uinum < ui->pending_cnt &&
+ addr < ui->pending_addr[uinum].fileaddr + uioffset)
+ /* Skip ahead quickly. */
+ addr = ui->pending_addr[uinum].fileaddr + uioffset;
if (uinum < ui->pending_cnt &&
ui->pending_addr[uinum].fileaddr + uioffset == addr) {