Lines Matching refs:map

3291  * by @map as split_flags indicates
3303 struct ext4_map_blocks *map,
3314 int allocated = map->m_len;
3322 if (map->m_lblk + map->m_len < ee_block + ee_len) {
3331 map->m_lblk + map->m_len, split_flag1, flags1);
3335 allocated = ee_len - (map->m_lblk - ee_block);
3341 path = ext4_find_extent(inode, map->m_lblk, ppath, flags);
3348 (unsigned long) map->m_lblk);
3353 if (map->m_lblk >= ee_block) {
3361 map->m_lblk, split_flag1, flags);
3384 * of the logical span [map->m_lblk, map->m_lblk + map->m_len).
3387 * - the returned value is the number of blocks beyond map->l_lblk
3389 * It is guaranteed to be >= map->m_len.
3393 struct ext4_map_blocks *map,
3404 unsigned int ee_len, depth, map_len = map->m_len;
3411 (unsigned long long)map->m_lblk, map_len);
3416 if (eof_block < map->m_lblk + map_len)
3417 eof_block = map->m_lblk + map_len;
3427 trace_ext4_ext_convert_to_initialized_enter(inode, map, ex);
3431 BUG_ON(!in_range(map->m_lblk, ee_block, ee_len));
3448 if ((map->m_lblk == ee_block) &&
3480 map, ex, abut_ex);
3494 } else if (((map->m_lblk + map_len) == (ee_block + ee_len)) &&
3518 ((map->m_lblk + map_len) == next_lblk) && /*C2*/
3526 map, ex, abut_ex);
3549 allocated = ee_len - (map->m_lblk - ee_block);
3551 WARN_ON(map->m_lblk < ee_block);
3573 split_map.m_lblk = map->m_lblk;
3574 split_map.m_len = map->m_len;
3608 allocated = map->m_len;
3652 struct ext4_map_blocks *map,
3664 (unsigned long long)map->m_lblk, map->m_len);
3668 if (eof_block < map->m_lblk + map->m_len)
3669 eof_block = map->m_lblk + map->m_len;
3689 return ext4_split_extent(handle, inode, ppath, map, split_flag, flags);
3694 struct ext4_map_blocks *map,
3718 if (ee_block != map->m_lblk || ee_len > map->m_len) {
3723 (unsigned long long)map->m_lblk, map->m_len);
3725 err = ext4_split_convert_extents(handle, inode, map, ppath,
3729 path = ext4_find_extent(inode, map->m_lblk, ppath, 0);
3756 struct ext4_map_blocks *map,
3771 if (map->m_len > EXT_UNWRITTEN_MAX_LEN)
3772 map->m_len = EXT_UNWRITTEN_MAX_LEN / 2;
3782 if (ee_block != map->m_lblk || ee_len > map->m_len) {
3783 err = ext4_split_convert_extents(handle, inode, map, ppath,
3787 path = ext4_find_extent(inode, map->m_lblk, ppath, 0);
3794 (unsigned long) map->m_lblk);
3818 map->m_flags |= EXT4_MAP_UNWRITTEN;
3819 if (*allocated > map->m_len)
3820 *allocated = map->m_len;
3821 map->m_len = *allocated;
3827 struct ext4_map_blocks *map,
3836 (unsigned long long)map->m_lblk, map->m_len, flags,
3846 trace_ext4_ext_handle_unwritten_extents(inode, map, flags,
3851 ret = ext4_split_convert_extents(handle, inode, map, ppath,
3864 map->m_len);
3868 map->m_flags |= EXT4_MAP_UNWRITTEN;
3873 err = ext4_convert_unwritten_extents_endio(handle, inode, map,
3886 map->m_flags |= EXT4_MAP_UNWRITTEN;
3899 map->m_flags |= EXT4_MAP_UNWRITTEN;
3908 ret = ext4_ext_convert_to_initialized(handle, inode, map, ppath, flags);
3920 map->m_len);
3927 map->m_flags |= EXT4_MAP_NEW;
3929 map->m_flags |= EXT4_MAP_MAPPED;
3931 map->m_pblk = newblock;
3932 if (allocated > map->m_len)
3933 allocated = map->m_len;
3934 map->m_len = allocated;
3942 * allocation (in the map structure) overlaps with a cluster already
3945 * @map The requested lblk->pblk mapping
3972 * In each of the above cases, we need to set the map->m_pblk and
3973 * map->m_len so it corresponds to the return the extent labelled as
3975 * cluster EXT4_B2C(sbi, map->m_lblk). We will then return 1 to
3976 * signal to ext4_ext_map_blocks() that map->m_pblk should be treated
3982 struct ext4_map_blocks *map,
3987 ext4_lblk_t c_offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
3999 rr_cluster_start = EXT4_B2C(sbi, map->m_lblk);
4005 map->m_pblk = EXT4_PBLK_CMASK(sbi, ee_start) + c_offset;
4006 map->m_len = min(map->m_len,
4017 if (map->m_lblk < ee_block)
4018 map->m_len = min(map->m_len, ee_block - map->m_lblk);
4029 if (map->m_lblk > ee_block) {
4031 map->m_len = min(map->m_len, next - map->m_lblk);
4034 trace_ext4_get_implied_cluster_alloc_exit(sb, map, 1);
4038 trace_ext4_get_implied_cluster_alloc_exit(sb, map, 0);
4110 * Block allocation/map/preallocation routine for extents based files
4128 struct ext4_map_blocks *map, int flags)
4140 ext_debug(inode, "blocks %u/%u requested\n", map->m_lblk, map->m_len);
4141 trace_ext4_ext_map_blocks_enter(inode, map->m_lblk, map->m_len, flags);
4144 path = ext4_find_extent(inode, map->m_lblk, NULL, 0);
4161 (unsigned long) map->m_lblk, depth,
4183 if (in_range(map->m_lblk, ee_block, ee_len)) {
4184 newblock = map->m_lblk - ee_block + ee_start;
4186 allocated = ee_len - (map->m_lblk - ee_block);
4188 map->m_lblk, ee_block, ee_len, newblock);
4197 inode, map, &path, &allocated);
4200 map->m_flags |= EXT4_MAP_MAPPED;
4201 map->m_pblk = newblock;
4202 if (allocated > map->m_len)
4203 allocated = map->m_len;
4204 map->m_len = allocated;
4210 handle, inode, map, &path, flags,
4227 len = ext4_ext_determine_insert_hole(inode, path, map->m_lblk);
4229 map->m_pblk = 0;
4230 map->m_len = min_t(unsigned int, map->m_len, len);
4237 newex.ee_block = cpu_to_le32(map->m_lblk);
4238 cluster_offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
4245 get_implied_cluster_alloc(inode->i_sb, map, ex, path)) {
4246 ar.len = allocated = map->m_len;
4247 newblock = map->m_pblk;
4252 ar.lleft = map->m_lblk;
4256 ar.lright = map->m_lblk;
4264 get_implied_cluster_alloc(inode->i_sb, map, &ex2, path)) {
4265 ar.len = allocated = map->m_len;
4266 newblock = map->m_pblk;
4276 if (map->m_len > EXT_INIT_MAX_LEN &&
4278 map->m_len = EXT_INIT_MAX_LEN;
4279 else if (map->m_len > EXT_UNWRITTEN_MAX_LEN &&
4281 map->m_len = EXT_UNWRITTEN_MAX_LEN;
4284 newex.ee_len = cpu_to_le16(map->m_len);
4289 allocated = map->m_len;
4293 ar.goal = ext4_ext_find_goal(inode, path, map->m_lblk);
4294 ar.logical = map->m_lblk;
4303 offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
4336 map->m_flags |= EXT4_MAP_UNWRITTEN;
4388 lblk = EXT4_LBLK_CMASK(sbi, map->m_lblk);
4405 map->m_flags |= (EXT4_MAP_NEW | EXT4_MAP_MAPPED);
4406 map->m_pblk = pblk;
4407 map->m_len = ar.len;
4408 allocated = map->m_len;
4413 trace_ext4_ext_map_blocks_exit(inode, flags, map,
4458 struct ext4_map_blocks map;
4463 map.m_lblk = offset;
4464 map.m_len = len;
4495 ret = ext4_map_blocks(handle, inode, &map, flags);
4499 inode->i_ino, map.m_lblk,
4500 map.m_len, ret);
4509 map.m_lblk += ret;
4510 map.m_len = len = len - ret;
4511 epos = (loff_t)map.m_lblk << inode->i_blkbits;
4822 struct ext4_map_blocks map;
4826 map.m_lblk = offset >> blkbits;
4836 map.m_lblk += ret;
4837 map.m_len = (max_blocks -= ret);
4846 ret = ext4_map_blocks(handle, inode, &map,
4852 inode->i_ino, map.m_lblk,
4853 map.m_len, ret);
5974 struct ext4_map_blocks map;
5976 map.m_lblk = *cur;
5977 map.m_len = ((inode->i_size) >> inode->i_sb->s_blocksize_bits) - *cur;
5979 ret = ext4_map_blocks(NULL, inode, &map, 0);
5984 *cur = *cur + map.m_len;
5996 struct ext4_map_blocks map;
6014 map.m_lblk = cur;
6015 map.m_len = end - cur;
6016 ret = ext4_map_blocks(NULL, inode, &map, 0);
6021 cur = cur + map.m_len;
6088 struct ext4_map_blocks map;
6108 map.m_lblk = cur;
6109 map.m_len = end - cur;
6110 ret = ext4_map_blocks(NULL, inode, &map, 0);
6114 path = ext4_find_extent(inode, map.m_lblk, NULL, 0);
6125 ext4_mb_mark_bb(inode->i_sb, map.m_pblk, map.m_len, false);
6127 map.m_lblk, map.m_pblk, map.m_len, 1);
6129 cur = cur + map.m_len;