android_kernel_xiaomi_sm8450/fs/udf
Jan Kara bacfce056e udf: Fix file corruption when appending just after end of preallocated extent
commit 36ec52ea038b18a53e198116ef7d7e70c87db046 upstream.

When we append new block just after the end of preallocated extent, the
code in inode_getblk() wrongly determined we're going to use the
preallocated extent which resulted in adding block into a wrong logical
offset in the file. Sequence like this manifests it:

xfs_io -f -c "pwrite 0x2cacf 0xd122" -c "truncate 0x2dd6f" \
  -c "pwrite 0x27fd9 0x69a9" -c "pwrite 0x32981 0x7244" <file>

The code that determined the use of preallocated extent is actually
stale because udf_do_extend_file() does not create preallocation anymore
so after calling that function we are sure there's no usable
preallocation. Just remove the faulty condition.

CC: stable@vger.kernel.org
Fixes: 16d055656814 ("udf: Discard preallocation before extending file with a hole")
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-03-11 16:39:57 +01:00
..
balloc.c treewide: Remove uninitialized_var() usage 2020-07-16 12:35:15 -07:00
dir.c udf: Fix crash after seekdir 2021-11-26 10:39:20 +01:00
directory.c udf: Remove pointless union in udf_inode_info 2020-09-29 17:21:54 +02:00
ecma_167.h udf: Replace HTTP links with HTTPS ones 2020-07-14 14:37:39 +02:00
file.c udf: Do not update file length for failed writes to inline files 2023-03-11 16:39:57 +01:00
ialloc.c udf: Fix error handling in udf_new_inode() 2022-01-27 10:54:23 +01:00
inode.c udf: Fix file corruption when appending just after end of preallocated extent 2023-03-11 16:39:57 +01:00
Kconfig docs: filesystems: fix renamed references 2020-04-20 15:45:22 -06:00
lowlevel.c udf: stop using ioctl_by_bdev 2020-05-04 10:13:42 -06:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
misc.c udf_get_extendedattr() had no boundary checks. 2021-09-15 09:50:27 +02:00
namei.c udf: Avoid double brelse() in udf_rename() 2023-01-14 10:16:13 +01:00
osta_udf.h udf: osta_udf.h: delete a duplicated word 2020-07-27 10:58:55 +02:00
partition.c udf: Remove pointless union in udf_inode_info 2020-09-29 17:21:54 +02:00
super.c udf: Preserve link count of system files 2023-03-11 16:39:57 +01:00
symlink.c udf: Remove pointless union in udf_inode_info 2020-09-29 17:21:54 +02:00
truncate.c udf: Do not bother looking for prealloc extents if i_lenExtents matches i_size 2022-12-21 17:32:06 +01:00
udf_i.h udf: Preserve link count of system files 2023-03-11 16:39:57 +01:00
udf_sb.h udf: Define EFSCORRUPTED error code 2023-03-11 16:39:48 +01:00
udfdecl.h udf: augment UDF permissions on new inodes 2019-08-27 15:38:46 +02:00
udfend.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
udftime.c udf: convert inode stamps to timespec64 2018-06-27 13:58:00 +02:00
unicode.c udf: Fix iocharset=utf8 mount option 2021-09-15 09:50:25 +02:00