mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-20 19:06:39 -04:00
ext4: propagate flags to convert_initialized_extent()
Currently, ext4_zero_range passes EXT4_EX_NOCACHE flag to avoid caching extents however this is not respected by convert_initialized_extent(). Hence, modify it to accept flags from the caller and to pass the flags on to other extent manipulation functions it calls. This makes sure the NOCACHE flag is respected throughout the code path. Also, we no longer explicitly pass CONVERT_UNWRITTEN as the caller takes care of this. Reviewed-by: Zhang Yi <yi.zhang@huawei.com> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com> Link: https://patch.msgid.link/07008fbb14db727fddcaf4c30e2346c49f6c8fe0.1769149131.git.ojaswin@linux.ibm.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
committed by
Theodore Ts'o
parent
82f80e2e3b
commit
3fffa44b6e
@@ -3840,6 +3840,7 @@ static struct ext4_ext_path *
|
||||
convert_initialized_extent(handle_t *handle, struct inode *inode,
|
||||
struct ext4_map_blocks *map,
|
||||
struct ext4_ext_path *path,
|
||||
int flags,
|
||||
unsigned int *allocated)
|
||||
{
|
||||
struct ext4_extent *ex;
|
||||
@@ -3865,11 +3866,11 @@ convert_initialized_extent(handle_t *handle, struct inode *inode,
|
||||
|
||||
if (ee_block != map->m_lblk || ee_len > map->m_len) {
|
||||
path = ext4_split_convert_extents(handle, inode, map, path,
|
||||
EXT4_GET_BLOCKS_CONVERT_UNWRITTEN, NULL);
|
||||
flags, NULL);
|
||||
if (IS_ERR(path))
|
||||
return path;
|
||||
|
||||
path = ext4_find_extent(inode, map->m_lblk, path, 0);
|
||||
path = ext4_find_extent(inode, map->m_lblk, path, flags);
|
||||
if (IS_ERR(path))
|
||||
return path;
|
||||
depth = ext_depth(inode);
|
||||
@@ -4259,7 +4260,7 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
|
||||
if ((!ext4_ext_is_unwritten(ex)) &&
|
||||
(flags & EXT4_GET_BLOCKS_CONVERT_UNWRITTEN)) {
|
||||
path = convert_initialized_extent(handle,
|
||||
inode, map, path, &allocated);
|
||||
inode, map, path, flags, &allocated);
|
||||
if (IS_ERR(path))
|
||||
err = PTR_ERR(path);
|
||||
goto out;
|
||||
|
||||
Reference in New Issue
Block a user