[merged] xfs-free-temporary-cursor-in-xfs_dialloc.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     xfs: free temporary cursor in xfs_dialloc()
has been removed from the -mm tree.  Its filename was
     xfs-free-temporary-cursor-in-xfs_dialloc.patch

This patch was dropped because it was merged into mainline or a subsystem tree

The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/

------------------------------------------------------
Subject: xfs: free temporary cursor in xfs_dialloc()
From: Eric Sandeen <sandeen@xxxxxxxxxxx>

Commit bd169565993b39b9b4b102cdac8b13e0a259ce2f ("xfs: speed up free inode
search") 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@xxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Cc: Alex Elder <aelder@xxxxxxx>
Cc: Felix Blyakher <felixb@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---


diff -puN fs/xfs/xfs_ialloc.c~xfs-free-temporary-cursor-in-xfs_dialloc fs/xfs/xfs_ialloc.c
--- a/fs/xfs/xfs_ialloc.c~xfs-free-temporary-cursor-in-xfs_dialloc
+++ a/fs/xfs/xfs_ialloc.c
@@ -880,6 +880,7 @@ nextag:
 				 * Not in range - save last search
 				 * location and allocate a new inode
 				 */
+				xfs_btree_del_cursor(tcur, XFS_BTREE_NOERROR);
 				pag->pagl_leftrec = trec.ir_startino;
 				pag->pagl_rightrec = rec.ir_startino;
 				pag->pagl_pagino = pagino;
_

Patches currently in -mm which might be from sandeen@xxxxxxxxxxx are

origin.patch
linux-next.patch

--
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux