android_kernel_motorola_sm6375/fs/udf
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Kara 38a1f5e9fc 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:44:01 +01:00
..
balloc.c
dir.c
directory.c
ecma_167.h
file.c udf: Do not update file length for failed writes to inline files 2023-03-11 16:44:00 +01:00
ialloc.c
inode.c udf: Fix file corruption when appending just after end of preallocated extent 2023-03-11 16:44:01 +01:00
Kconfig
lowlevel.c
Makefile
misc.c
namei.c udf: Avoid double brelse() in udf_rename() 2023-01-18 11:41:34 +01:00
osta_udf.h
partition.c
super.c udf: Preserve link count of system files 2023-03-11 16:44:00 +01:00
symlink.c
truncate.c udf: Do not bother looking for prealloc extents if i_lenExtents matches i_size 2023-01-18 11:40:47 +01:00
udf_i.h udf: Preserve link count of system files 2023-03-11 16:44:00 +01:00
udf_sb.h udf: Define EFSCORRUPTED error code 2023-03-11 16:43:53 +01:00
udfdecl.h
udfend.h
udftime.c
unicode.c