Lines Matching defs:indirect
681 // read from double indirect blocks
683 //printf("find double indirect block: %ld,%d!\n",fInode->data.double_indirect.allocation_group,fInode->data.double_indirect.start);
684 block_run *indirect = (block_run *)fDisk->ReadBlockRun(fInode->data.double_indirect);
685 if (indirect == NULL)
694 //printf("\tlook for indirect block at %ld,%d\n",indirect[index].allocation_group,indirect[index].start);
695 indirect = (block_run *)fDisk->ReadBlockRun(indirect[index]);
696 if (indirect == NULL)
702 fRun = indirect[fCurrent];
705 // access from indirect blocks
707 block_run *indirect = (block_run *)fDisk->ReadBlockRun(fInode->data.indirect);
708 if (!indirect)
711 int32 indirectRuns = (fInode->data.indirect.length << fDisk->BlockShift()) / sizeof(block_run);
720 if (indirect[fCurrent].IsZero())
724 fRunBlockEnd += indirect[fCurrent].length << fDisk->BlockShift();
728 if (fCurrent == indirectRuns || indirect[fCurrent].IsZero())
731 fRun = indirect[fCurrent];
732 //printf("reading from indirect block: %ld,%d\n",fRun.allocation_group,fRun.start);
733 //printf("### indirect-run[%ld] = (%ld,%d,%d), offset = %Ld\n",fCurrent,fRun.allocation_group,fRun.start,fRun.length,fRunFileOffset);