Commit 5f76de1d authored by Jan Kara's avatar Jan Kara Committed by zhaoxiaoqiang11
Browse files

udf: Fix extension of the last extent in the file

stable inclusion
from stable-v5.10.163
commit 6df376e245699666f9e9c2f37d6b9908dc9b925e
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7PJ9N

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=6df376e245699666f9e9c2f37d6b9908dc9b925e



----------------------------------------------------

[ Upstream commit 83c7423d ]

When extending the last extent in the file within the last block, we
wrongly computed the length of the last extent. This is mostly a
cosmetical problem since the extent does not contain any data and the
length will be fixed up by following operations but still.

Fixes: 1f3868f0 ("udf: Fix extending file within last block")
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarzhaoxiaoqiang11 <zhaoxiaoqiang11@jd.com>
parent 1913109c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -599,7 +599,7 @@ static void udf_do_extend_final_block(struct inode *inode,
	 */
	if (new_elen <= (last_ext->extLength & UDF_EXTENT_LENGTH_MASK))
		return;
	added_bytes = (last_ext->extLength & UDF_EXTENT_LENGTH_MASK) - new_elen;
	added_bytes = new_elen - (last_ext->extLength & UDF_EXTENT_LENGTH_MASK);
	last_ext->extLength += added_bytes;
	UDF_I(inode)->i_lenExtents += added_bytes;