Lines Matching refs:mip

271 	struct xfs_dir2_leaf_map_info *mip,  in xfs_dir2_leaf_readbuf()  argument
277 struct xfs_bmbt_irec *map = mip->map; in xfs_dir2_leaf_readbuf()
293 mip->map_blocks -= geo->fsbcount; in xfs_dir2_leaf_readbuf()
307 if (!map->br_blockcount && --mip->map_valid) in xfs_dir2_leaf_readbuf()
309 sizeof(map[0]) * mip->map_valid); in xfs_dir2_leaf_readbuf()
317 mip->ra_want = howmany(bufsize + geo->blksize, (1 << geo->fsblog)) - 1; in xfs_dir2_leaf_readbuf()
318 ASSERT(mip->ra_want >= 0); in xfs_dir2_leaf_readbuf()
324 if (1 + mip->ra_want > mip->map_blocks && in xfs_dir2_leaf_readbuf()
325 mip->map_off < xfs_dir2_byte_to_da(geo, XFS_DIR2_LEAF_OFFSET)) { in xfs_dir2_leaf_readbuf()
330 mip->nmap = mip->map_size - mip->map_valid; in xfs_dir2_leaf_readbuf()
331 error = xfs_bmapi_read(dp, mip->map_off, in xfs_dir2_leaf_readbuf()
333 mip->map_off, in xfs_dir2_leaf_readbuf()
334 &map[mip->map_valid], &mip->nmap, 0); in xfs_dir2_leaf_readbuf()
349 if (mip->nmap == mip->map_size - mip->map_valid) { in xfs_dir2_leaf_readbuf()
350 i = mip->map_valid + mip->nmap - 1; in xfs_dir2_leaf_readbuf()
351 mip->map_off = map[i].br_startoff + map[i].br_blockcount; in xfs_dir2_leaf_readbuf()
353 mip->map_off = xfs_dir2_byte_to_da(geo, in xfs_dir2_leaf_readbuf()
360 for (i = mip->map_valid; i < mip->map_valid + mip->nmap; ) { in xfs_dir2_leaf_readbuf()
362 mip->nmap--; in xfs_dir2_leaf_readbuf()
363 length = mip->map_valid + mip->nmap - i; in xfs_dir2_leaf_readbuf()
368 mip->map_blocks += map[i].br_blockcount; in xfs_dir2_leaf_readbuf()
372 mip->map_valid += mip->nmap; in xfs_dir2_leaf_readbuf()
378 if (!mip->map_valid) { in xfs_dir2_leaf_readbuf()
379 *curoff = xfs_dir2_da_to_byte(geo, mip->map_off); in xfs_dir2_leaf_readbuf()
386 mip->curdb = xfs_dir2_da_to_db(geo, map->br_startoff); in xfs_dir2_leaf_readbuf()
401 if (mip->ra_current) in xfs_dir2_leaf_readbuf()
402 mip->ra_current -= geo->fsbcount; in xfs_dir2_leaf_readbuf()
408 for (mip->ra_index = mip->ra_offset = i = 0; in xfs_dir2_leaf_readbuf()
409 mip->ra_want > mip->ra_current && i < mip->map_blocks; in xfs_dir2_leaf_readbuf()
411 ASSERT(mip->ra_index < mip->map_valid); in xfs_dir2_leaf_readbuf()
415 if (i > mip->ra_current && in xfs_dir2_leaf_readbuf()
416 map[mip->ra_index].br_blockcount >= geo->fsbcount) { in xfs_dir2_leaf_readbuf()
418 map[mip->ra_index].br_startoff + mip->ra_offset, in xfs_dir2_leaf_readbuf()
420 map[mip->ra_index].br_startblock + in xfs_dir2_leaf_readbuf()
421 mip->ra_offset)); in xfs_dir2_leaf_readbuf()
422 mip->ra_current = i; in xfs_dir2_leaf_readbuf()
429 else if (i > mip->ra_current) { in xfs_dir2_leaf_readbuf()
431 map[mip->ra_index].br_startoff + in xfs_dir2_leaf_readbuf()
432 mip->ra_offset, -1); in xfs_dir2_leaf_readbuf()
433 mip->ra_current = i; in xfs_dir2_leaf_readbuf()
445 map[mip->ra_index].br_blockcount - in xfs_dir2_leaf_readbuf()
446 mip->ra_offset); in xfs_dir2_leaf_readbuf()
447 mip->ra_offset += length; in xfs_dir2_leaf_readbuf()
452 if (mip->ra_offset == map[mip->ra_index].br_blockcount) { in xfs_dir2_leaf_readbuf()
453 mip->ra_offset = 0; in xfs_dir2_leaf_readbuf()
454 mip->ra_index++; in xfs_dir2_leaf_readbuf()