Are you running with CONFIG_AUDITSYSCALL?Thanks Rick and Linus,
We ran into what sounds like the same problem and we're testing
a patch right now for a names_cache growth which only occurs
with CONFIG_AUDITSYSCALL enabled, and then only every time you
traverse a symlink. In open_namei(), in the do_link section, we call
__do_follow_link() which will bypass the auditing whether it's enabled
or not. However at the end of this section, we will call putname(),
which will *not* actually do a __putname() if auditing is enabled because
it believes it will happen at syscall return. So we slowly lose memory
with each link traversal.
The code in open_namei() is a bit non-intuitive in error conditions,
but the general fix appears to be pretty straightforward. Let me know if
this patch seems to do the trick for you.