diff options
| author | Thomas Zimmermann <[email protected]> | 2024-03-13 08:43:21 +0000 |
|---|---|---|
| committer | Thomas Zimmermann <[email protected]> | 2024-03-13 08:43:21 +0000 |
| commit | a2e7496b453eaa577425858d6f8b854800ed7343 (patch) | |
| tree | 35d05023d51161a28768a29115c8e03e65599fe5 /fs/ext4/symlink.c | |
| parent | nouveau/dmem: handle kcalloc() allocation failure (diff) | |
| parent | nouveau: lock the client object tree. (diff) | |
| download | kernel-a2e7496b453eaa577425858d6f8b854800ed7343.tar.gz kernel-a2e7496b453eaa577425858d6f8b854800ed7343.zip | |
Merge drm/drm-fixes into drm-misc-fixes
Backmerging to sync before merging the patchset at [1].
[1] https://lore.kernel.org/all/[email protected]/
Signed-off-by: Thomas Zimmermann <[email protected]>
Diffstat (limited to 'fs/ext4/symlink.c')
| -rw-r--r-- | fs/ext4/symlink.c | 8 |
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)) |
