udf: Keep i_lenExtents consistent with the total length of extents

When rounding the last extent to blocksize in inode_getblk() we forgot
to update also i_lenExtents to match the new extent length. This
inconsistency can later confuse some assertion checks.

Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
Jan Kara 2022-12-21 17:53:28 +01:00
parent e57191a8d4
commit b316c443b4

View File

@ -677,6 +677,9 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
elen = EXT_RECORDED_ALLOCATED |
((elen + inode->i_sb->s_blocksize - 1) &
~(inode->i_sb->s_blocksize - 1));
iinfo->i_lenExtents =
ALIGN(iinfo->i_lenExtents,
inode->i_sb->s_blocksize);
udf_write_aext(inode, &cur_epos, &eloc, elen, 1);
}
newblock = udf_get_lb_pblock(inode->i_sb, &eloc, offset);