LINUX: Reduce stack depth on recursive symlink res
authorAndrew Deason <adeason@sinenomine.net>
Fri, 3 Dec 2010 23:20:54 +0000 (17:20 -0600)
committerDerrick Brashear <shadow@dementia.org>
Wed, 22 Dec 2010 05:02:15 +0000 (21:02 -0800)
commit2ce159fbf474b96ecd2a4224751d4655230bba51
treeb90a187c10a9946d939893c7a639cd5c24824900
parent64e564b29e95898a6eb85dc527d046aab241fb8f
LINUX: Reduce stack depth on recursive symlink res

Instead of calling vfs_follow_link inside afs_linux_follow_link
ourselves, we can just resolve the next step of the symlink resolution
and set the result in nd_set_link(), freeing the string in
.put_link().

For kernels without a usable symlink text cache, this reduces call
depth when resolving a path containing many symlinks by two frames per
layer of indirection, allowing for more deeply-nested symlink paths to
be usable.

Change-Id: I6886c3b67089c8028fd6ad93ab10eb9173bd6fbe
Reviewed-on: http://gerrit.openafs.org/3433
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/afs/LINUX/osi_vnodeops.c