Lines Matching full:indirect
118 } Indirect; typedef
120 static inline void add_chain(Indirect *p, struct buffer_head *bh, __le32 *v) in add_chain()
126 static inline int verify_chain(Indirect *from, Indirect *to) in verify_chain()
139 * followed (on disk) by an indirect block.
142 * data blocks at leaves and indirect blocks in intermediate nodes.
149 * we need to know is the capacity of indirect blocks (taken from the
155 * indirect block) is spelled differently, because otherwise on an
206 * ext2_get_branch - read the chain of indirect blocks leading to data
209 * @offsets: offsets of pointers in inode/indirect blocks
219 * for i>0) and chain[i].bh points to the buffer_head of i-th indirect
227 * or when it gets an IO error reading an indirect block
231 * or when it reads all @depth-1 indirect blocks successfully and finds
234 static Indirect *ext2_get_branch(struct inode *inode, in ext2_get_branch()
237 Indirect chain[4], in ext2_get_branch()
241 Indirect *p = chain; in ext2_get_branch()
277 * @ind: descriptor of indirect block.
283 * + if pointer will live in indirect block - allocate near that block.
294 static ext2_fsblk_t ext2_find_near(struct inode *inode, Indirect *ind) in ext2_find_near()
307 /* No such thing, so let's try location of indirect block */ in ext2_find_near()
331 Indirect *partial) in ext2_find_goal()
353 * @branch: chain of indirect blocks
354 * @k: number of blocks need for indirect blocks
356 * @blocks_to_boundary: the offset in the indirect block
361 ext2_blks_to_allocate(Indirect * branch, int k, unsigned long blks, in ext2_blks_to_allocate()
367 * Simple case, [t,d]Indirect block(s) has not allocated yet in ext2_blks_to_allocate()
391 * @indirect_blks: The number of blocks needed to allocate for indirect blocks.
394 * the indirect blocks(if needed) and the first direct block.
413 * the indirect blocks(if not allocated yet), and at least in ext2_alloc_blocks()
421 /* allocating blocks for indirect blocks and direct blocks */ in ext2_alloc_blocks()
427 /* allocate blocks for indirect blocks */ in ext2_alloc_blocks()
481 int *offsets, Indirect *branch) in ext2_alloc_branch()
554 * @num: number of indirect blocks we are adding
562 long block, Indirect *where, int num, int blks) in ext2_splice_branch()
598 /* had we spliced it onto indirect block? */ in ext2_splice_branch()
631 Indirect chain[4]; in ext2_get_blocks()
632 Indirect *partial; in ext2_get_blocks()
659 * Indirect block might be removed by in ext2_get_blocks()
679 /* Next simple case - plain lookup or failed read of indirect block */ in ext2_get_blocks()
685 * If the indirect block is missing while we are reading in ext2_get_blocks()
723 /* the number of blocks need to allocate for [d,t]indirect blocks */ in ext2_get_blocks()
726 * Next look up the indirect map to count the total number of in ext2_get_blocks()
993 * ext2_find_shared - find the indirect blocks for partial truncation.
997 * @chain: place to store the pointers to partial indirect blocks
1002 * When we do truncate() we may have to clean the ends of several indirect
1026 static Indirect *ext2_find_shared(struct inode *inode, in ext2_find_shared()
1029 Indirect chain[4], in ext2_find_shared()
1032 Indirect *partial, *p; in ext2_find_shared()
1167 Indirect chain[4]; in __ext2_truncate_blocks()
1168 Indirect *partial; in __ext2_truncate_blocks()
1205 /* Clear the ends of indirect blocks on the shared branch */ in __ext2_truncate_blocks()