summaryrefslogtreecommitdiff
path: root/fs/ext4/symlink.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2024-03-18 17:30:46 +0000
committerMark Brown <broonie@kernel.org>2024-03-18 17:30:46 +0000
commit5bd249aec71d75f0088357e4aba27fde0610f823 (patch)
treeed63b21b48b711430492734564775758a39eb94c /fs/ext4/symlink.c
parent7397175cb7b48f7a3fc699083aa46f1234904c7e (diff)
parente8f897f4afef0031fe618a8e94127a0934896aba (diff)
spi: Merge up v6.8 release
An i.MX fix depends on other fixes that were sent to v6.8.
Diffstat (limited to 'fs/ext4/symlink.c')
-rw-r--r--fs/ext4/symlink.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/ext4/symlink.c b/fs/ext4/symlink.c
index 75bf1f88843c..645240cc0229 100644
--- a/fs/ext4/symlink.c
+++ b/fs/ext4/symlink.c
@@ -92,10 +92,12 @@ static const char *ext4_get_link(struct dentry *dentry, struct inode *inode,
if (!dentry) {
bh = ext4_getblk(NULL, inode, 0, EXT4_GET_BLOCKS_CACHED_NOWAIT);
- if (IS_ERR(bh))
- return ERR_CAST(bh);
- if (!bh || !ext4_buffer_uptodate(bh))
+ if (IS_ERR(bh) || !bh)
return ERR_PTR(-ECHILD);
+ if (!ext4_buffer_uptodate(bh)) {
+ brelse(bh);
+ return ERR_PTR(-ECHILD);
+ }
} else {
bh = ext4_bread(NULL, inode, 0, 0);
if (IS_ERR(bh))