• Al Viro's avatar
    [PATCH] get stack footprint of pathname resolution back to relative sanity · a02f76c3
    Al Viro authored
    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: default avatarAl Viro <viro@zeniv.linux.org.uk>
    a02f76c3
namei.c 69.4 KB