Commit 3b826386d376e5545d2e92b2da5ebd965cafae97
Committed by
hch@lst.de
1 parent
ba313e68fa
Exists in
master
and in
7 other branches
xfs: free temporary cursor in xfs_dialloc
Commit bd169565993b39b9b4b102cdac8b13e0a259ce2f 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>
Showing 1 changed file with 1 additions and 0 deletions Side-by-side Diff
fs/xfs/xfs_ialloc.c
... | ... | @@ -880,6 +880,7 @@ |
880 | 880 | * Not in range - save last search |
881 | 881 | * location and allocate a new inode |
882 | 882 | */ |
883 | + xfs_btree_del_cursor(tcur, XFS_BTREE_NOERROR); | |
883 | 884 | pag->pagl_leftrec = trec.ir_startino; |
884 | 885 | pag->pagl_rightrec = rec.ir_startino; |
885 | 886 | pag->pagl_pagino = pagino; |