Lines Matching refs:path

59 ext4_ext_binsearch_index(struct inode *ip, struct ext4_extent_path *path,  in ext4_ext_binsearch_index()  argument
62 struct ext4_extent_header *ehp = path->ep_header; in ext4_ext_binsearch_index()
78 path->ep_sparse_ext.e_blk = *first_lbn; in ext4_ext_binsearch_index()
79 path->ep_sparse_ext.e_len = first->ei_blk - *first_lbn; in ext4_ext_binsearch_index()
80 path->ep_sparse_ext.e_start_hi = 0; in ext4_ext_binsearch_index()
81 path->ep_sparse_ext.e_start_lo = 0; in ext4_ext_binsearch_index()
82 path->ep_is_sparse = true; in ext4_ext_binsearch_index()
85 path->ep_index = l - 1; in ext4_ext_binsearch_index()
86 *first_lbn = path->ep_index->ei_blk; in ext4_ext_binsearch_index()
87 if (path->ep_index < last) in ext4_ext_binsearch_index()
93 ext4_ext_binsearch(struct inode *ip, struct ext4_extent_path *path, daddr_t lbn, in ext4_ext_binsearch() argument
96 struct ext4_extent_header *ehp = path->ep_header; in ext4_ext_binsearch()
114 path->ep_sparse_ext.e_blk = first_lbn; in ext4_ext_binsearch()
115 path->ep_sparse_ext.e_len = first->e_blk - first_lbn; in ext4_ext_binsearch()
116 path->ep_sparse_ext.e_start_hi = 0; in ext4_ext_binsearch()
117 path->ep_sparse_ext.e_start_lo = 0; in ext4_ext_binsearch()
118 path->ep_is_sparse = true; in ext4_ext_binsearch()
121 path->ep_ext = l - 1; in ext4_ext_binsearch()
122 if (path->ep_ext->e_blk + path->ep_ext->e_len <= lbn) { in ext4_ext_binsearch()
123 path->ep_sparse_ext.e_blk = path->ep_ext->e_blk + in ext4_ext_binsearch()
124 path->ep_ext->e_len; in ext4_ext_binsearch()
126 path->ep_sparse_ext.e_len = l->e_blk - in ext4_ext_binsearch()
127 path->ep_sparse_ext.e_blk; in ext4_ext_binsearch()
129 path->ep_sparse_ext.e_len = last_lbn - in ext4_ext_binsearch()
130 path->ep_sparse_ext.e_blk + 1; in ext4_ext_binsearch()
131 path->ep_sparse_ext.e_start_hi = 0; in ext4_ext_binsearch()
132 path->ep_sparse_ext.e_start_lo = 0; in ext4_ext_binsearch()
133 path->ep_is_sparse = true; in ext4_ext_binsearch()
182 daddr_t lbn, struct ext4_extent_path *path) in ext4_ext_find_extent() argument
194 path->ep_header = ehp; in ext4_ext_find_extent()
200 path->ep_depth = i; in ext4_ext_find_extent()
201 path->ep_ext = NULL; in ext4_ext_find_extent()
202 if (ext4_ext_binsearch_index(ip, path, lbn, &first_lbn, in ext4_ext_find_extent()
204 return path; in ext4_ext_find_extent()
207 nblk = (daddr_t)path->ep_index->ei_leaf_hi << 32 | in ext4_ext_find_extent()
208 path->ep_index->ei_leaf_lo; in ext4_ext_find_extent()
210 if (path->ep_bp != NULL) { in ext4_ext_find_extent()
211 brelse(path->ep_bp, 0); in ext4_ext_find_extent()
212 path->ep_bp = NULL; in ext4_ext_find_extent()
215 &path->ep_bp); in ext4_ext_find_extent()
217 brelse(path->ep_bp, 0); in ext4_ext_find_extent()
218 path->ep_bp = NULL; in ext4_ext_find_extent()
221 ehp = (struct ext4_extent_header *)path->ep_bp->b_data; in ext4_ext_find_extent()
222 path->ep_header = ehp; in ext4_ext_find_extent()
225 path->ep_depth = i; in ext4_ext_find_extent()
226 path->ep_ext = NULL; in ext4_ext_find_extent()
227 path->ep_index = NULL; in ext4_ext_find_extent()
228 path->ep_is_sparse = false; in ext4_ext_find_extent()
230 ext4_ext_binsearch(ip, path, lbn, first_lbn, last_lbn); in ext4_ext_find_extent()
231 return path; in ext4_ext_find_extent()