Lines Matching refs:mip

274 	struct xfs_dir2_leaf_map_info *mip,  in xfs_dir2_leaf_readbuf()  argument
280 struct xfs_bmbt_irec *map = mip->map; in xfs_dir2_leaf_readbuf()
296 mip->map_blocks -= geo->fsbcount; in xfs_dir2_leaf_readbuf()
310 if (!map->br_blockcount && --mip->map_valid) in xfs_dir2_leaf_readbuf()
312 sizeof(map[0]) * mip->map_valid); in xfs_dir2_leaf_readbuf()
320 mip->ra_want = howmany(bufsize + geo->blksize, (1 << geo->fsblog)) - 1; in xfs_dir2_leaf_readbuf()
321 ASSERT(mip->ra_want >= 0); in xfs_dir2_leaf_readbuf()
327 if (1 + mip->ra_want > mip->map_blocks && in xfs_dir2_leaf_readbuf()
328 mip->map_off < xfs_dir2_byte_to_da(geo, XFS_DIR2_LEAF_OFFSET)) { in xfs_dir2_leaf_readbuf()
333 mip->nmap = mip->map_size - mip->map_valid; in xfs_dir2_leaf_readbuf()
334 error = xfs_bmapi_read(dp, mip->map_off, in xfs_dir2_leaf_readbuf()
336 mip->map_off, in xfs_dir2_leaf_readbuf()
337 &map[mip->map_valid], &mip->nmap, 0); in xfs_dir2_leaf_readbuf()
352 if (mip->nmap == mip->map_size - mip->map_valid) { in xfs_dir2_leaf_readbuf()
353 i = mip->map_valid + mip->nmap - 1; in xfs_dir2_leaf_readbuf()
354 mip->map_off = map[i].br_startoff + map[i].br_blockcount; in xfs_dir2_leaf_readbuf()
356 mip->map_off = xfs_dir2_byte_to_da(geo, in xfs_dir2_leaf_readbuf()
363 for (i = mip->map_valid; i < mip->map_valid + mip->nmap; ) { in xfs_dir2_leaf_readbuf()
365 mip->nmap--; in xfs_dir2_leaf_readbuf()
366 length = mip->map_valid + mip->nmap - i; in xfs_dir2_leaf_readbuf()
371 mip->map_blocks += map[i].br_blockcount; in xfs_dir2_leaf_readbuf()
375 mip->map_valid += mip->nmap; in xfs_dir2_leaf_readbuf()
381 if (!mip->map_valid) { in xfs_dir2_leaf_readbuf()
382 *curoff = xfs_dir2_da_to_byte(geo, mip->map_off); in xfs_dir2_leaf_readbuf()
389 mip->curdb = xfs_dir2_da_to_db(geo, map->br_startoff); in xfs_dir2_leaf_readbuf()
404 if (mip->ra_current) in xfs_dir2_leaf_readbuf()
405 mip->ra_current -= geo->fsbcount; in xfs_dir2_leaf_readbuf()
411 for (mip->ra_index = mip->ra_offset = i = 0; in xfs_dir2_leaf_readbuf()
412 mip->ra_want > mip->ra_current && i < mip->map_blocks; in xfs_dir2_leaf_readbuf()
414 ASSERT(mip->ra_index < mip->map_valid); in xfs_dir2_leaf_readbuf()
418 if (i > mip->ra_current && in xfs_dir2_leaf_readbuf()
419 map[mip->ra_index].br_blockcount >= geo->fsbcount) { in xfs_dir2_leaf_readbuf()
421 map[mip->ra_index].br_startoff + mip->ra_offset, in xfs_dir2_leaf_readbuf()
423 map[mip->ra_index].br_startblock + in xfs_dir2_leaf_readbuf()
424 mip->ra_offset)); in xfs_dir2_leaf_readbuf()
425 mip->ra_current = i; in xfs_dir2_leaf_readbuf()
432 else if (i > mip->ra_current) { in xfs_dir2_leaf_readbuf()
434 map[mip->ra_index].br_startoff + in xfs_dir2_leaf_readbuf()
435 mip->ra_offset, -1); in xfs_dir2_leaf_readbuf()
436 mip->ra_current = i; in xfs_dir2_leaf_readbuf()
448 map[mip->ra_index].br_blockcount - in xfs_dir2_leaf_readbuf()
449 mip->ra_offset); in xfs_dir2_leaf_readbuf()
450 mip->ra_offset += length; in xfs_dir2_leaf_readbuf()
455 if (mip->ra_offset == map[mip->ra_index].br_blockcount) { in xfs_dir2_leaf_readbuf()
456 mip->ra_offset = 0; in xfs_dir2_leaf_readbuf()
457 mip->ra_index++; in xfs_dir2_leaf_readbuf()