mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 12:25:00 -04:00
jfs: fix metapage reference count leak in dbAllocCtl
[ Upstream commit 856db37592021e9155384094e331e2d4589f28b1 ]
In dbAllocCtl(), read_metapage() increases the reference count of the
metapage. However, when dp->tree.budmin < 0, the function returns -EIO
without calling release_metapage() to decrease the reference count,
leading to a memory leak.
Add release_metapage(mp) before the error return to properly manage
the metapage reference count and prevent the leak.
Fixes: a5f5e4698f8abbb25fe4959814093fb5bfa1aa9d ("jfs: fix shift-out-of-bounds in dbSplit")
Signed-off-by: Zheng Yu <zheng.yu@northwestern.edu>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
69373502c2
commit
9b38fb31c2
1 changed files with 3 additions and 1 deletions
|
|
@ -1875,8 +1875,10 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
|
|||
return -EIO;
|
||||
dp = (struct dmap *) mp->data;
|
||||
|
||||
if (dp->tree.budmin < 0)
|
||||
if (dp->tree.budmin < 0) {
|
||||
release_metapage(mp);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
/* try to allocate the blocks.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue