|
@@ -3067,6 +3067,7 @@ static int ext4_split_extent(handle_t *handle,
|
|
|
int err = 0;
|
|
|
int uninitialized;
|
|
|
int split_flag1, flags1;
|
|
|
+ int allocated = map->m_len;
|
|
|
|
|
|
depth = ext_depth(inode);
|
|
|
ex = path[depth].p_ext;
|
|
@@ -3086,6 +3087,8 @@ static int ext4_split_extent(handle_t *handle,
|
|
|
map->m_lblk + map->m_len, split_flag1, flags1);
|
|
|
if (err)
|
|
|
goto out;
|
|
|
+ } else {
|
|
|
+ allocated = ee_len - (map->m_lblk - ee_block);
|
|
|
}
|
|
|
/*
|
|
|
* Update path is required because previous ext4_split_extent_at() may
|
|
@@ -3115,7 +3118,7 @@ static int ext4_split_extent(handle_t *handle,
|
|
|
|
|
|
ext4_ext_show_leaf(inode, path);
|
|
|
out:
|
|
|
- return err ? err : map->m_len;
|
|
|
+ return err ? err : allocated;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -3730,6 +3733,7 @@ out:
|
|
|
allocated - map->m_len);
|
|
|
allocated = map->m_len;
|
|
|
}
|
|
|
+ map->m_len = allocated;
|
|
|
|
|
|
/*
|
|
|
* If we have done fallocate with the offset that is already
|