Make decodeX calls more uniform, and avoid some
unnecessary arithmetic.
Signed-off-by: NeilBrown <neilb@suse.de>
}
cp = buf;
- cp += lo*12+6;
+ cp += lo*12;
+ p = decode48(cp);
elen = decode16(cp);
addr = decode32(cp);
if (target < addr || target >= addr + elen)
p = 0;
- else {
- cp = buf;
- cp += lo*12;
- p = decode48(cp);
+ else
p += target - addr;
- }
if (nextp) {
if (lo == len/12)
*nextp = ~0UL; /* next extent */
else {
u64 p2;
- cp = buf;
- cp += (lo+1)*12;
p2 = decode48(cp);
elen = decode16(cp);
+ addr = decode32(cp)
if (elen == 0)
*nextp = ~0UL; /* no more meaningful
extents*/
else
- *nextp = decode32(cp);
+ *nextp = addr;
}
}
}