Lines Matching refs:indirect
205 // access to double indirect blocks
218 block_run* indirect = (block_run*)cached.SetTo(
220 if (indirect == NULL)
224 //printf("\tlook for indirect block at %ld,%d\n",indirect[index].allocation_group,indirect[index].start);
228 indirect = (block_run*)cached.SetTo(fVolume.ToBlock(indirect[
230 if (indirect == NULL)
233 run = indirect[current % runsPerBlock];
238 // access to indirect blocks
244 off_t block = fVolume.ToBlock(data.indirect);
246 for (int32 i = 0; i < data.indirect.Length(); i++) {
247 block_run* indirect = (block_run *)cached.SetTo(block + i);
248 if (indirect == NULL)
253 if (indirect[current].IsZero())
257 += (uint32)indirect[current].Length() << cached.BlockShift();
259 run = indirect[current];
262 //printf("reading from indirect block: %ld,%d\n",fRun.allocation_group,fRun.start);
263 //printf("### indirect-run[%ld] = (%ld,%d,%d), offset = %lld\n",fCurrent,fRun.allocation_group,fRun.start,fRun.length,fRunFileOffset);