Lines Matching defs:map
1438 struct f2fs_map_blocks map;
1443 map.m_lblk = F2FS_BLK_ALIGN(iocb->ki_pos);
1444 map.m_len = F2FS_BYTES_TO_BLK(iocb->ki_pos + iov_iter_count(from));
1445 if (map.m_len > map.m_lblk)
1446 map.m_len -= map.m_lblk;
1448 map.m_len = 0;
1450 map.m_next_pgofs = NULL;
1451 map.m_next_extent = NULL;
1452 map.m_seg_type = NO_CHECK_TYPE;
1453 map.m_may_create = true;
1456 map.m_seg_type = f2fs_rw_hint_to_seg_type(iocb->ki_hint);
1473 err = f2fs_map_blocks(inode, &map, 1, flag);
1474 if (map.m_len > 0 && err == -ENOSPC) {
1502 int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map,
1505 unsigned int maxblocks = map->m_len;
1508 int mode = map->m_may_create ? ALLOC_NODE : LOOKUP_NODE;
1524 map->m_len = 0;
1525 map->m_flags = 0;
1528 pgofs = (pgoff_t)map->m_lblk;
1533 map->m_may_create)
1536 map->m_pblk = ei.blk + pgofs - ei.fofs;
1537 map->m_len = min((pgoff_t)maxblocks, ei.fofs + ei.len - pgofs);
1538 map->m_flags = F2FS_MAP_MAPPED;
1539 if (map->m_next_extent)
1540 *map->m_next_extent = pgofs + map->m_len;
1545 map->m_pblk, map->m_len);
1550 if (map->m_may_create)
1558 map->m_pblk = 0;
1567 if (map->m_may_create &&
1575 if (map->m_next_pgofs)
1576 *map->m_next_pgofs =
1578 if (map->m_next_extent)
1579 *map->m_next_extent =
1602 map->m_may_create) {
1603 err = __allocate_data_block(&dn, map->m_seg_type, contig_level);
1624 map->m_seg_type, contig_level);
1630 map->m_flags |= F2FS_MAP_NEW;
1634 map->m_pblk = 0;
1641 if (map->m_next_pgofs)
1642 *map->m_next_pgofs = pgofs + 1;
1647 if (map->m_next_pgofs)
1648 *map->m_next_pgofs = pgofs + 1;
1657 if (map->m_len == 0) {
1660 map->m_flags |= F2FS_MAP_UNWRITTEN;
1661 map->m_flags |= F2FS_MAP_MAPPED;
1663 map->m_pblk = blkaddr;
1664 map->m_len = 1;
1665 } else if ((map->m_pblk != NEW_ADDR &&
1666 blkaddr == (map->m_pblk + ofs)) ||
1667 (map->m_pblk == NEW_ADDR && blkaddr == NEW_ADDR) ||
1670 map->m_len++;
1688 map->m_len += dn.ofs_in_node - ofs_in_node;
1702 if (map->m_flags & F2FS_MAP_MAPPED) {
1703 unsigned int ofs = start_pgofs - map->m_lblk;
1706 start_pgofs, map->m_pblk + ofs,
1707 map->m_len - ofs);
1713 if (map->m_may_create) {
1722 if (flag == F2FS_GET_BLOCK_DIO && map->m_flags & F2FS_MAP_MAPPED)
1724 map->m_pblk, map->m_len);
1727 if (map->m_flags & F2FS_MAP_MAPPED) {
1728 unsigned int ofs = start_pgofs - map->m_lblk;
1731 start_pgofs, map->m_pblk + ofs,
1732 map->m_len - ofs);
1734 if (map->m_next_extent)
1735 *map->m_next_extent = pgofs + 1;
1739 if (map->m_may_create) {
1744 trace_f2fs_map_blocks(inode, map, err);
1750 struct f2fs_map_blocks map;
1757 map.m_lblk = F2FS_BYTES_TO_BLK(pos);
1758 map.m_next_pgofs = NULL;
1759 map.m_next_extent = NULL;
1760 map.m_seg_type = NO_CHECK_TYPE;
1761 map.m_may_create = false;
1764 while (map.m_lblk < last_lblk) {
1765 map.m_len = last_lblk - map.m_lblk;
1766 err = f2fs_map_blocks(inode, &map, 0, F2FS_GET_BLOCK_DEFAULT);
1767 if (err || map.m_len == 0)
1769 map.m_lblk += map.m_len;
1778 struct f2fs_map_blocks map;
1781 map.m_lblk = iblock;
1782 map.m_len = bh->b_size >> inode->i_blkbits;
1783 map.m_next_pgofs = next_pgofs;
1784 map.m_next_extent = NULL;
1785 map.m_seg_type = seg_type;
1786 map.m_may_create = may_write;
1788 err = f2fs_map_blocks(inode, &map, create, flag);
1790 map_bh(bh, inode->i_sb, map.m_pblk);
1791 bh->b_state = (bh->b_state & ~F2FS_MAP_FLAGS) | map.m_flags;
1792 bh->b_size = (u64)map.m_len << inode->i_blkbits;
2071 struct f2fs_map_blocks *map,
2098 if ((map->m_flags & F2FS_MAP_MAPPED) &&
2099 block_in_file > map->m_lblk &&
2100 block_in_file < (map->m_lblk + map->m_len))
2107 map->m_lblk = block_in_file;
2108 map->m_len = last_block - block_in_file;
2110 ret = f2fs_map_blocks(inode, map, 0, F2FS_GET_BLOCK_DEFAULT);
2114 if ((map->m_flags & F2FS_MAP_MAPPED)) {
2115 block_nr = map->m_pblk + block_in_file - map->m_lblk;
2387 struct f2fs_map_blocks map;
2405 map.m_pblk = 0;
2406 map.m_lblk = 0;
2407 map.m_len = 0;
2408 map.m_flags = 0;
2409 map.m_next_pgofs = NULL;
2410 map.m_next_extent = NULL;
2411 map.m_seg_type = NO_CHECK_TYPE;
2412 map.m_may_create = false;
2465 ret = f2fs_read_single_page(inode, page, max_nr_pages, &map,