]> err.no Git - linux-2.6/commit
[PATCH] inotify/idr leak fix
authorAndrew Morton <akpm@osdl.org>
Sun, 23 Oct 2005 19:57:18 +0000 (12:57 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 23 Oct 2005 23:38:39 +0000 (16:38 -0700)
commit8d3b35914aa54232b27e6a2b57d84092aadc5e86
tree809be8fad6743a751964677e68c5c01af3198e4b
parentc0fef676bbd75e711711ed3ff5bebb7bfd1bdb00
[PATCH] inotify/idr leak fix

Fix a bug which was reported and diagnosed by
Stefan Jones <stefan.jones@churchillrandoms.co.uk>

IDR trees include a cache of idr_layer objects.  There's no way to destroy
this cache, so when we discard an overall idr tree we end up leaking some
memory.

Add and use idr_destroy() for this.  v9fs and infiniband also need to use
idr_destroy() to avoid leaks.

Or, we make the cache global, like radix_tree_preload().  Which is probably
better.  Later.

Cc: Eric Van Hensbergen <ericvh@ericvh.myip.org>
Cc: Roland Dreier <rolandd@cisco.com>
Cc: Robert Love <rml@novell.com>
Cc: John McCutchan <ttb@tentacle.dhs.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/inotify.c
include/linux/idr.h
lib/idr.c