Lines Matching refs:map

12 	struct erofs_map_blocks *map;
36 m->kaddr = erofs_read_metabuf(&m->map->buf, inode->i_sb,
269 m->kaddr = erofs_read_metabuf(&m->map->buf, inode->i_sb,
314 m->map->m_la = (lcn << lclusterbits) | m->clusterofs;
335 struct erofs_map_blocks *const map = m->map;
350 map->m_plen = 1ULL << lclusterbits;
395 map->m_plen = erofs_pos(sb, m->compressedblks);
407 struct erofs_map_blocks *map = m->map;
409 u64 lcn = m->lcn, headlcn = map->m_la >> lclusterbits;
415 map->m_llen = inode->i_size - map->m_la;
442 map->m_llen = (lcn << lclusterbits) + m->clusterofs - map->m_la;
447 struct erofs_map_blocks *map, int flags)
454 .map = map,
462 ofs = flags & EROFS_GET_BLOCKS_FINDTAIL ? inode->i_size - 1 : map->m_la;
473 map->m_flags = EROFS_MAP_MAPPED | EROFS_MAP_ENCODED;
482 map->m_la = (m.lcn << lclusterbits) | m.clusterofs;
501 map->m_flags |= EROFS_MAP_FULL_MAPPED;
518 map->m_flags |= EROFS_MAP_PARTIAL_REF;
519 map->m_llen = end - map->m_la;
528 map->m_flags |= EROFS_MAP_META;
529 map->m_pa = vi->z_idataoff;
530 map->m_plen = vi->z_idata_size;
532 map->m_flags |= EROFS_MAP_FRAGMENT;
534 map->m_pa = erofs_pos(inode->i_sb, m.pblk);
541 if (map->m_llen > map->m_plen) {
559 map->m_algorithmformat = afmt;
563 (map->m_algorithmformat == Z_EROFS_COMPRESSION_LZMA ||
564 map->m_algorithmformat == Z_EROFS_COMPRESSION_DEFLATE) &&
565 map->m_llen >= i_blocksize(inode))) {
568 map->m_flags |= EROFS_MAP_FULL_MAPPED;
572 erofs_unmap_metabuf(&m.map->buf);
611 * if the highest bit of the 8-byte map header is set, the whole file
652 struct erofs_map_blocks map = {
657 err = z_erofs_do_map_blocks(inode, &map,
659 erofs_put_metabuf(&map.buf);
661 if (!map.m_plen ||
662 erofs_blkoff(sb, map.m_pa) + map.m_plen > sb->s_blocksize) {
664 map.m_plen);
673 struct erofs_map_blocks map = {
678 err = z_erofs_do_map_blocks(inode, &map,
680 erofs_put_metabuf(&map.buf);
695 int z_erofs_map_blocks_iter(struct inode *inode, struct erofs_map_blocks *map,
701 trace_z_erofs_map_blocks_iter_enter(inode, map, flags);
704 if (map->m_la >= inode->i_size) {
705 map->m_llen = map->m_la + 1 - inode->i_size;
706 map->m_la = inode->i_size;
707 map->m_flags = 0;
717 map->m_la = 0;
718 map->m_llen = inode->i_size;
719 map->m_flags = EROFS_MAP_MAPPED | EROFS_MAP_FULL_MAPPED |
724 err = z_erofs_do_map_blocks(inode, map, flags);
726 trace_z_erofs_map_blocks_iter_exit(inode, map, flags, err);
735 struct erofs_map_blocks map = { .m_la = offset };
737 ret = z_erofs_map_blocks_iter(inode, &map, EROFS_GET_BLOCKS_FIEMAP);
738 erofs_put_metabuf(&map.buf);
743 iomap->offset = map.m_la;
744 iomap->length = map.m_llen;
745 if (map.m_flags & EROFS_MAP_MAPPED) {
747 iomap->addr = map.m_flags & EROFS_MAP_FRAGMENT ?
748 IOMAP_NULL_ADDR : map.m_pa;
758 * (map.m_la) from the requested offset, and add it to length.
759 * (NB: offset >= map.m_la always)
762 iomap->length = length + offset - map.m_la;