vfs: use __getname/__putname for getcwd() system call
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Sep 2013 19:40:15 +0000 (12:40 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Sep 2013 19:40:15 +0000 (12:40 -0700)
commit3272c544da48f8915a0e34189182aed029bd0f2b
treee2d6aacc2de8f26c14e844af6ed245b8a43d7978
parentff812d724254b95df76b7775d1359d856927a840
vfs: use __getname/__putname for getcwd() system call

It's a pathname.  It should use the pathname allocators and
deallocators, and PATH_MAX instead of PAGE_SIZE.  Never mind that the
two are commonly the same.

With this, the allocations scale up nicely too, and I can do getcwd()
system calls at a rate of about 300M/s, with no lock contention
anywhere.

Of course, nobody sane does that, especially since getcwd() is
traditionally a very slow operation in Unix.  But this was also the
simplest way to benchmark the prepend_path() improvements by Waiman, and
once I saw the profiles I couldn't leave it well enough alone.

But apart from being an performance improvement (from using per-cpu slab
allocators instead of the raw page allocator), it's actually a valid and
real cleanup.

Signed-off-by: Linus "OCD" Torvalds <torvalds@linux-foundation.org>
fs/dcache.c