udf: Handle error when expanding directory

[ Upstream commit 33e9a53cd9 ]

When there is an error when adding extent to the directory to expand it,
make sure to propagate the error up properly. This is not expected to
happen currently but let's make the code more futureproof.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Jan Kara
2024-10-17 14:19:14 -03:00
committed by Greg Kroah-Hartman
parent 15b4182497
commit 701cabd26a

View File

@@ -192,8 +192,13 @@ static struct buffer_head *udf_expand_dir_adinicb(struct inode *inode,
epos.bh = NULL;
epos.block = iinfo->i_location;
epos.offset = udf_file_entry_alloc_offset(inode);
udf_add_aext(inode, &epos, &eloc, inode->i_size, 0);
ret = udf_add_aext(inode, &epos, &eloc, inode->i_size, 0);
brelse(epos.bh);
if (ret < 0) {
*err = ret;
udf_free_blocks(inode->i_sb, inode, &eloc, 0, 1);
return NULL;
}
mark_inode_dirty(inode);
/* Now fixup tags in moved directory entries */