summaryrefslogtreecommitdiff
path: root/fs/ext4
diff options
context:
space:
mode:
authorBaokun Li <libaokun1@huawei.com>2024-08-22 05:35:30 +0300
committerTheodore Ts'o <tytso@mit.edu>2024-09-04 05:12:17 +0300
commit369c944ed1d7c3fb7b35f24e4735761153afe7b3 (patch)
treeeae2abbd9573a20035b55fb8da7347a252170d34 /fs/ext4
parent6c2b3246cd0b951338c54b10f8ca13c59a41c86a (diff)
downloadlinux-369c944ed1d7c3fb7b35f24e4735761153afe7b3.tar.xz
ext4: propagate errors from ext4_find_extent() in ext4_insert_range()
Even though ext4_find_extent() returns an error, ext4_insert_range() still returns 0. This may confuse the user as to why fallocate returns success, but the contents of the file are not as expected. So propagate the error returned by ext4_find_extent() to avoid inconsistencies. Fixes: 331573febb6a ("ext4: Add support FALLOC_FL_INSERT_RANGE for fallocate") Cc: stable@kernel.org Signed-off-by: Baokun Li <libaokun1@huawei.com> Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Ojaswin Mujoo <ojaswin@linux.ibm.com> Tested-by: Ojaswin Mujoo <ojaswin@linux.ibm.com> Link: https://patch.msgid.link/20240822023545.1994557-11-libaokun@huaweicloud.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/extents.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 94068f1a0d85..e2f89ca3e138 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -5541,6 +5541,7 @@ static int ext4_insert_range(struct file *file, loff_t offset, loff_t len)
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;
}