Lines Matching defs:indirect
276 // access to double indirect blocks
287 block_run *indirect = (block_run *)cached.SetTo(
289 if (indirect == NULL)
293 //printf("\tlook for indirect block at %ld,%d\n",indirect[index].allocation_group,indirect[index].start);
297 indirect = (block_run *)cached.SetTo(
298 fVolume->ToBlock(indirect[index % runsPerBlock]) + current / runsPerBlock);
299 if (indirect == NULL)
302 run = indirect[current % runsPerBlock];
306 // access to indirect blocks
312 off_t block = fVolume->ToBlock(data->indirect);
314 for (int32 i = 0; i < data->indirect.Length(); i++) {
315 block_run *indirect = (block_run *)cached.SetTo(block + i);
316 if (indirect == NULL)
321 if (indirect[current].IsZero())
324 runBlockEnd += indirect[current].Length() << cached.BlockShift();
326 run = indirect[current];
328 //printf("reading from indirect block: %ld,%d\n",fRun.allocation_group,fRun.start);
329 //printf("### indirect-run[%ld] = (%ld,%d,%d), offset = %Ld\n",fCurrent,fRun.allocation_group,fRun.start,fRun.Length(),fRunFileOffset);