udf: Handle error when expanding directory

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>
This commit is contained in:
Jan Kara 2022-12-19 19:50:14 +01:00
parent 53cafe1d6d
commit 33e9a53cd9
1 changed files with 6 additions and 1 deletions

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 */