Lines Matching refs:mp

239 			  struct metapath *mp, unsigned int height)  in find_metapath()  argument
244 mp->mp_list[i] = do_div(block, sdp->sd_inptrs); in find_metapath()
248 static inline unsigned int metapath_branch_start(const struct metapath *mp) in metapath_branch_start() argument
250 if (mp->mp_list[0] == 0) in metapath_branch_start()
265 static inline __be64 *metapointer(unsigned int height, const struct metapath *mp) in metapointer() argument
267 struct buffer_head *bh = mp->mp_bh[height]; in metapointer()
270 return ((__be64 *)(bh->b_data + head_size)) + mp->mp_list[height]; in metapointer()
314 static int lookup_metapath(struct gfs2_inode *ip, struct metapath *mp) in lookup_metapath() argument
323 ptr = metapointer(x, mp); in lookup_metapath()
328 ret = gfs2_meta_indirect_buffer(ip, x+1, dblock, &mp->mp_bh[x+1]); in lookup_metapath()
336 static inline void release_metapath(struct metapath *mp) in release_metapath() argument
341 if (mp->mp_bh[i] == NULL) in release_metapath()
343 brelse(mp->mp_bh[i]); in release_metapath()
399 static inline __be64 *gfs2_indirect_init(struct metapath *mp, in gfs2_indirect_init() argument
403 __be64 *ptr = (__be64 *)(mp->mp_bh[i - 1]->b_data + in gfs2_indirect_init()
407 BUG_ON(mp->mp_bh[i] != NULL); in gfs2_indirect_init()
408 mp->mp_bh[i] = gfs2_meta_new(gl, bn); in gfs2_indirect_init()
409 gfs2_trans_add_meta(gl, mp->mp_bh[i]); in gfs2_indirect_init()
410 gfs2_metatype_set(mp->mp_bh[i], GFS2_METATYPE_IN, GFS2_FORMAT_IN); in gfs2_indirect_init()
411 gfs2_buffer_clear_tail(mp->mp_bh[i], sizeof(struct gfs2_meta_header)); in gfs2_indirect_init()
449 struct buffer_head *bh_map, struct metapath *mp, in gfs2_bmap_alloc() argument
457 struct buffer_head *dibh = mp->mp_bh[0]; in gfs2_bmap_alloc()
477 ptr = metapointer(end_of_metadata, mp); in gfs2_bmap_alloc()
478 bh = mp->mp_bh[end_of_metadata]; in gfs2_bmap_alloc()
487 mp->mp_list[end_of_metadata])); in gfs2_bmap_alloc()
496 branch_start = metapath_branch_start(mp); in gfs2_bmap_alloc()
523 gfs2_indirect_init(mp, ip->i_gl, i, 0, bn++); in gfs2_bmap_alloc()
526 gfs2_buffer_copy_tail(mp->mp_bh[i], in gfs2_bmap_alloc()
532 ptr = (__be64 *)(mp->mp_bh[i]->b_data + in gfs2_bmap_alloc()
537 if (mp->mp_bh[i] == NULL) in gfs2_bmap_alloc()
539 brelse(mp->mp_bh[i]); in gfs2_bmap_alloc()
540 mp->mp_bh[i] = NULL; in gfs2_bmap_alloc()
549 gfs2_trans_add_meta(ip->i_gl, mp->mp_bh[i-1]); in gfs2_bmap_alloc()
551 gfs2_indirect_init(mp, ip->i_gl, i, in gfs2_bmap_alloc()
552 mp->mp_list[i-1], bn++); in gfs2_bmap_alloc()
560 BUG_ON(mp->mp_bh[end_of_metadata] == NULL); in gfs2_bmap_alloc()
561 gfs2_trans_add_meta(ip->i_gl, mp->mp_bh[end_of_metadata]); in gfs2_bmap_alloc()
563 ptr = metapointer(end_of_metadata, mp); in gfs2_bmap_alloc()
582 gfs2_dinode_out(ip, mp->mp_bh[0]->b_data); in gfs2_bmap_alloc()
613 struct metapath mp; in gfs2_block_map() local
622 memset(mp.mp_bh, 0, sizeof(mp.mp_bh)); in gfs2_block_map()
633 ret = gfs2_meta_inode_buffer(ip, &mp.mp_bh[0]); in gfs2_block_map()
641 find_metapath(sdp, lblock, &mp, height); in gfs2_block_map()
645 ret = lookup_metapath(ip, &mp); in gfs2_block_map()
650 ptr = metapointer(ip->i_height - 1, &mp); in gfs2_block_map()
654 bh = mp.mp_bh[ip->i_height - 1]; in gfs2_block_map()
661 release_metapath(&mp); in gfs2_block_map()
675 ret = gfs2_bmap_alloc(inode, lblock, bh_map, &mp, ret, height, maxlen); in gfs2_block_map()
871 struct metapath *mp, unsigned int height, in recursive_scan() argument
887 top = (__be64 *)(bh->b_data + sizeof(struct gfs2_dinode)) + mp->mp_list[0]; in recursive_scan()
895 (first ? mp->mp_list[height] : 0); in recursive_scan()
914 error = recursive_scan(ip, dibh, mp, height + 1, bn, in recursive_scan()
1090 struct metapath mp; in trunc_dealloc() local
1098 find_metapath(sdp, lblock, &mp, ip->i_height); in trunc_dealloc()
1112 error = recursive_scan(ip, NULL, &mp, 0, 0, 1, &sm); in trunc_dealloc()