[PATCH] get stack footprint of pathname resolution back to relative sanity
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 23 Feb 2008 15:14:28 +0000 (15:14 +0000)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 19 Mar 2008 10:55:46 +0000 (06:55 -0400)
commita02f76c34d7d6d30b63ac64a8b34dea68593e8da
tree4186495ccb3d6ef3cec8b5f8cf964212f746ab55
parentb4d232e65fa274a715dae39f77191071324e602a
[PATCH] get stack footprint of pathname resolution back to relative sanity

Somebody had put struct nameidata in stack frame of link_path_walk().
Unfortunately, there are certain realities to deal with:
* It's in the middle of recursion.  Depth is equal to the nesting
depth of symlinks, i.e. up to 8.
* struct namiedata is, even if one discards the intent junk,
at least 12 pointers + 5 ints.
* moreover, adding a stack frame is not free in that situation.
* there are fs methods called on top of that, and they also have
stack footprint.
* kernel stack is not infinite.

The thing is, even if one chooses to deal with -ESTALE that way (and it's
one hell of an overkill), the only thing that needs to be preserved is
vfsmount + dentry, not the entire struct nameidata.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namei.c