From: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
To: stable@vger.kernel.org
Cc: Jan Kara <jack@suse.cz>,
kernel-dev@igalia.com,
Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Subject: [PATCH 6.1 18/19] udf: Handle error when expanding directory
Date: Thu, 17 Oct 2024 14:19:14 -0300 [thread overview]
Message-ID: <20241017171915.311132-19-cascardo@igalia.com> (raw)
In-Reply-To: <20241017171915.311132-1-cascardo@igalia.com>
From: Jan Kara <jack@suse.cz>
[ Upstream commit 33e9a53cd9f099b138578f8e1a3d60775ff8cbba ]
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>
---
fs/udf/namei.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/fs/udf/namei.c b/fs/udf/namei.c
index 75d029ae3d7d..7271aa8d7557 100644
--- a/fs/udf/namei.c
+++ b/fs/udf/namei.c
@@ -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 */
--
2.34.1
next prev parent reply other threads:[~2024-10-17 17:20 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-17 17:18 [PATCH 6.1 00/19] Fix NULL pointer dereference for corrupted UDF filesystems Thadeu Lima de Souza Cascardo
2024-10-17 17:18 ` [PATCH 6.1 01/19] udf: New directory iteration code Thadeu Lima de Souza Cascardo
2024-10-17 17:18 ` [PATCH 6.1 02/19] udf: Convert udf_expand_dir_adinicb() to new directory iteration Thadeu Lima de Souza Cascardo
2024-10-17 17:18 ` [PATCH 6.1 03/19] udf: Move udf_expand_dir_adinicb() to its callsite Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 04/19] udf: Implement searching for directory entry using new iteration code Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 05/19] udf: Provide function to mark entry as deleted using new directory " Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 06/19] udf: Convert udf_rename() to " Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 07/19] udf: Convert udf_readdir() to new directory iteration Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 08/19] udf: Convert udf_lookup() to use new directory iteration code Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 09/19] udf: Convert udf_get_parent() to " Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 10/19] udf: Convert empty_dir() " Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 11/19] udf: Convert udf_rmdir() " Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 12/19] udf: Convert udf_unlink() " Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 13/19] udf: Implement adding of dir entries using new " Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 14/19] udf: Convert udf_add_nondir() to new directory iteration Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 15/19] udf: Convert udf_mkdir() to new directory iteration code Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 16/19] udf: Convert udf_link() " Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` [PATCH 6.1 17/19] udf: Remove old " Thadeu Lima de Souza Cascardo
2024-10-17 17:19 ` Thadeu Lima de Souza Cascardo [this message]
2024-10-17 17:19 ` [PATCH 6.1 19/19] udf: Don't return bh from udf_expand_dir_adinicb() Thadeu Lima de Souza Cascardo
2024-10-18 6:41 ` [PATCH 6.1 00/19] Fix NULL pointer dereference for corrupted UDF filesystems Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241017171915.311132-19-cascardo@igalia.com \
--to=cascardo@igalia.com \
--cc=jack@suse.cz \
--cc=kernel-dev@igalia.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox