Lines Matching defs:map
3321 * by @map as split_flags indicates
3333 struct ext4_map_blocks *map,
3344 int allocated = map->m_len;
3352 if (map->m_lblk + map->m_len < ee_block + ee_len) {
3361 map->m_lblk + map->m_len, split_flag1, flags1);
3365 allocated = ee_len - (map->m_lblk - ee_block);
3371 path = ext4_find_extent(inode, map->m_lblk, ppath, flags);
3378 (unsigned long) map->m_lblk);
3384 if (map->m_lblk >= ee_block) {
3392 map->m_lblk, split_flag1, flags);
3415 * of the logical span [map->m_lblk, map->m_lblk + map->m_len).
3418 * - the returned value is the number of blocks beyond map->l_lblk
3420 * It is guaranteed to be >= map->m_len.
3424 struct ext4_map_blocks *map,
3435 unsigned int ee_len, depth, map_len = map->m_len;
3441 (unsigned long long)map->m_lblk, map_len);
3446 if (eof_block < map->m_lblk + map_len)
3447 eof_block = map->m_lblk + map_len;
3457 trace_ext4_ext_convert_to_initialized_enter(inode, map, ex);
3461 BUG_ON(!in_range(map->m_lblk, ee_block, ee_len));
3478 if ((map->m_lblk == ee_block) &&
3510 map, ex, abut_ex);
3524 } else if (((map->m_lblk + map_len) == (ee_block + ee_len)) &&
3548 ((map->m_lblk + map_len) == next_lblk) && /*C2*/
3556 map, ex, abut_ex);
3579 allocated = ee_len - (map->m_lblk - ee_block);
3581 WARN_ON(map->m_lblk < ee_block);
3603 split_map.m_lblk = map->m_lblk;
3604 split_map.m_len = map->m_len;
3638 allocated = map->m_len;
3683 struct ext4_map_blocks *map,
3695 (unsigned long long)map->m_lblk, map->m_len);
3699 if (eof_block < map->m_lblk + map->m_len)
3700 eof_block = map->m_lblk + map->m_len;
3720 return ext4_split_extent(handle, inode, ppath, map, split_flag, flags);
3725 struct ext4_map_blocks *map,
3749 if (ee_block != map->m_lblk || ee_len > map->m_len) {
3754 (unsigned long long)map->m_lblk, map->m_len);
3756 err = ext4_split_convert_extents(handle, inode, map, ppath,
3760 path = ext4_find_extent(inode, map->m_lblk, ppath, 0);
3787 struct ext4_map_blocks *map,
3802 if (map->m_len > EXT_UNWRITTEN_MAX_LEN)
3803 map->m_len = EXT_UNWRITTEN_MAX_LEN / 2;
3813 if (ee_block != map->m_lblk || ee_len > map->m_len) {
3814 err = ext4_split_convert_extents(handle, inode, map, ppath,
3818 path = ext4_find_extent(inode, map->m_lblk, ppath, 0);
3825 (unsigned long) map->m_lblk);
3849 map->m_flags |= EXT4_MAP_UNWRITTEN;
3850 if (*allocated > map->m_len)
3851 *allocated = map->m_len;
3852 map->m_len = *allocated;
3858 struct ext4_map_blocks *map,
3867 (unsigned long long)map->m_lblk, map->m_len, flags,
3877 trace_ext4_ext_handle_unwritten_extents(inode, map, flags,
3882 ret = ext4_split_convert_extents(handle, inode, map, ppath,
3895 map->m_len);
3899 map->m_flags |= EXT4_MAP_UNWRITTEN;
3904 err = ext4_convert_unwritten_extents_endio(handle, inode, map,
3917 map->m_flags |= EXT4_MAP_UNWRITTEN;
3930 map->m_flags |= EXT4_MAP_UNWRITTEN;
3939 ret = ext4_ext_convert_to_initialized(handle, inode, map, ppath, flags);
3951 map->m_len);
3958 map->m_flags |= EXT4_MAP_NEW;
3960 map->m_flags |= EXT4_MAP_MAPPED;
3962 map->m_pblk = newblock;
3963 if (allocated > map->m_len)
3964 allocated = map->m_len;
3965 map->m_len = allocated;
3973 * allocation (in the map structure) overlaps with a cluster already
3976 * @map The requested lblk->pblk mapping
4003 * In each of the above cases, we need to set the map->m_pblk and
4004 * map->m_len so it corresponds to the return the extent labelled as
4006 * cluster EXT4_B2C(sbi, map->m_lblk). We will then return 1 to
4007 * signal to ext4_ext_map_blocks() that map->m_pblk should be treated
4013 struct ext4_map_blocks *map,
4018 ext4_lblk_t c_offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
4030 rr_cluster_start = EXT4_B2C(sbi, map->m_lblk);
4036 map->m_pblk = EXT4_PBLK_CMASK(sbi, ee_start) + c_offset;
4037 map->m_len = min(map->m_len,
4048 if (map->m_lblk < ee_block)
4049 map->m_len = min(map->m_len, ee_block - map->m_lblk);
4060 if (map->m_lblk > ee_block) {
4062 map->m_len = min(map->m_len, next - map->m_lblk);
4065 trace_ext4_get_implied_cluster_alloc_exit(sb, map, 1);
4069 trace_ext4_get_implied_cluster_alloc_exit(sb, map, 0);
4075 * Block allocation/map/preallocation routine for extents based files
4093 struct ext4_map_blocks *map, int flags)
4105 ext_debug(inode, "blocks %u/%u requested\n", map->m_lblk, map->m_len);
4106 trace_ext4_ext_map_blocks_enter(inode, map->m_lblk, map->m_len, flags);
4109 path = ext4_find_extent(inode, map->m_lblk, NULL, 0);
4126 (unsigned long) map->m_lblk, depth,
4148 if (in_range(map->m_lblk, ee_block, ee_len)) {
4149 newblock = map->m_lblk - ee_block + ee_start;
4151 allocated = ee_len - (map->m_lblk - ee_block);
4153 map->m_lblk, ee_block, ee_len, newblock);
4162 inode, map, &path, &allocated);
4165 map->m_flags |= EXT4_MAP_MAPPED;
4166 map->m_pblk = newblock;
4167 if (allocated > map->m_len)
4168 allocated = map->m_len;
4169 map->m_len = allocated;
4175 handle, inode, map, &path, flags,
4192 hole_start = map->m_lblk;
4200 /* Update hole_len to reflect hole size after map->m_lblk */
4201 if (hole_start != map->m_lblk)
4202 hole_len -= map->m_lblk - hole_start;
4203 map->m_pblk = 0;
4204 map->m_len = min_t(unsigned int, map->m_len, hole_len);
4212 newex.ee_block = cpu_to_le32(map->m_lblk);
4213 cluster_offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
4220 get_implied_cluster_alloc(inode->i_sb, map, ex, path)) {
4221 ar.len = allocated = map->m_len;
4222 newblock = map->m_pblk;
4227 ar.lleft = map->m_lblk;
4231 ar.lright = map->m_lblk;
4239 get_implied_cluster_alloc(inode->i_sb, map, &ex2, path)) {
4240 ar.len = allocated = map->m_len;
4241 newblock = map->m_pblk;
4251 if (map->m_len > EXT_INIT_MAX_LEN &&
4253 map->m_len = EXT_INIT_MAX_LEN;
4254 else if (map->m_len > EXT_UNWRITTEN_MAX_LEN &&
4256 map->m_len = EXT_UNWRITTEN_MAX_LEN;
4259 newex.ee_len = cpu_to_le16(map->m_len);
4264 allocated = map->m_len;
4268 ar.goal = ext4_ext_find_goal(inode, path, map->m_lblk);
4269 ar.logical = map->m_lblk;
4278 offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
4311 map->m_flags |= EXT4_MAP_UNWRITTEN;
4363 lblk = EXT4_LBLK_CMASK(sbi, map->m_lblk);
4380 map->m_flags |= (EXT4_MAP_NEW | EXT4_MAP_MAPPED);
4381 map->m_pblk = pblk;
4382 map->m_len = ar.len;
4383 allocated = map->m_len;
4389 trace_ext4_ext_map_blocks_exit(inode, flags, map,
4444 struct ext4_map_blocks map;
4449 map.m_lblk = offset;
4450 map.m_len = len;
4481 ret = ext4_map_blocks(handle, inode, &map, flags);
4485 inode->i_ino, map.m_lblk,
4486 map.m_len, ret);
4491 map.m_lblk += ret;
4492 map.m_len = len = len - ret;
4493 epos = (loff_t)map.m_lblk << inode->i_blkbits;
4796 struct ext4_map_blocks map;
4800 map.m_lblk = offset >> blkbits;
4810 map.m_lblk += ret;
4811 map.m_len = (max_blocks -= ret);
4820 ret = ext4_map_blocks(handle, inode, &map,
4826 inode->i_ino, map.m_lblk,
4827 map.m_len, ret);
5987 struct ext4_map_blocks map;
5989 map.m_lblk = *cur;
5990 map.m_len = ((inode->i_size) >> inode->i_sb->s_blocksize_bits) - *cur;
5992 ret = ext4_map_blocks(NULL, inode, &map, 0);
5997 *cur = *cur + map.m_len;
6009 struct ext4_map_blocks map;
6029 map.m_lblk = cur;
6030 map.m_len = end - cur;
6031 ret = ext4_map_blocks(NULL, inode, &map, 0);
6036 cur = cur + map.m_len;
6110 struct ext4_map_blocks map;
6129 map.m_lblk = cur;
6130 map.m_len = end - cur;
6131 ret = ext4_map_blocks(NULL, inode, &map, 0);
6135 path = ext4_find_extent(inode, map.m_lblk, NULL, 0);
6147 ext4_mb_mark_bb(inode->i_sb, map.m_pblk, map.m_len, 0);
6149 map.m_lblk, map.m_pblk, map.m_len, 1);
6151 cur = cur + map.m_len;