On Wed 10-07-24 12:06:46, libaokun@xxxxxxxxxxxxxxx wrote:Yeah, exactly.
From: Baokun Li <libaokun1@xxxxxxxxxx>One nit below:
The use of path and ppath is now very confusing, so to make the code more
readable, pass path between functions uniformly, and get rid of ppath.
To get rid of the ppath in ext4_split_extent_at(), the following is done
here:
* Free the extents path when an error is encountered.
* Its caller needs to update ppath if it uses ppath.
* Teach ext4_ext_show_leaf() to skip error pointer.
* Propagate ext4_find_extent() error return value in ext4_insert_range().
No functional changes.
Signed-off-by: Baokun Li <libaokun1@xxxxxxxxxx>
@@ -5596,6 +5606,7 @@ static int ext4_insert_range(struct file *file, loff_t offset, loff_t len)AFAICT this actually fixes a bug where we could have returned 0 although
path = ext4_find_extent(inode, offset_lblk, NULL, 0);
if (IS_ERR(path)) {
up_write(&EXT4_I(inode)->i_data_sem);
+ ret = PTR_ERR(path);
goto out_stop;
}
ext4_find_extent() spotted an error?
This would deserve a separate patch soOk, I'll put this in a separate patch in the next version.
that it could be easily pulled into stable.
Otherwise looks good. Feel free to add:
Reviewed-by: Jan Kara <jack@xxxxxxx>
Honza