mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 19:56:18 +00:00
xfs: free temporary cursor in xfs_dialloc
Commit bd16956599
seems
to have a slight regression where this code path:
if (!--searchdistance) {
/*
* Not in range - save last search
* location and allocate a new inode
*/
...
goto newino;
}
doesn't free the temporary cursor (tcur) that got dup'd in
this function.
This leaks an item in the xfs_btree_cur zone, and it's caught
on module unload:
===========================================================
BUG xfs_btree_cur: Objects remaining on kmem_cache_close()
-----------------------------------------------------------
It seems like maybe a single free at the end of the function might
be cleaner, but for now put a del_cursor right in this code block
similar to the handling in the rest of the function.
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
ba313e68fa
commit
3b826386d3
1 changed files with 1 additions and 0 deletions
|
@ -880,6 +880,7 @@ nextag:
|
||||||
* Not in range - save last search
|
* Not in range - save last search
|
||||||
* location and allocate a new inode
|
* location and allocate a new inode
|
||||||
*/
|
*/
|
||||||
|
xfs_btree_del_cursor(tcur, XFS_BTREE_NOERROR);
|
||||||
pag->pagl_leftrec = trec.ir_startino;
|
pag->pagl_leftrec = trec.ir_startino;
|
||||||
pag->pagl_rightrec = rec.ir_startino;
|
pag->pagl_rightrec = rec.ir_startino;
|
||||||
pag->pagl_pagino = pagino;
|
pag->pagl_pagino = pagino;
|
||||||
|
|
Loading…
Reference in a new issue