From: Al Viro Date: Tue, 3 Mar 2020 16:25:31 +0000 (-0500) Subject: reserve_stack(): switch to __nd_alloc_stack() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=4542576b79a680062dc344a8a6e79d34b4c91bf1;p=linux.git reserve_stack(): switch to __nd_alloc_stack() expand the call of nd_alloc_stack() into it (and don't recheck the depth on the second call) Signed-off-by: Al Viro --- diff --git a/fs/namei.c b/fs/namei.c index 6025406e01e54..0539a26dd9b40 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -566,15 +566,6 @@ static bool path_connected(struct vfsmount *mnt, struct dentry *dentry) return is_subdir(dentry, mnt->mnt_root); } -static inline int nd_alloc_stack(struct nameidata *nd) -{ - if (likely(nd->depth != EMBEDDED_LEVELS)) - return 0; - if (likely(nd->stack != nd->internal)) - return 0; - return __nd_alloc_stack(nd); -} - static void drop_links(struct nameidata *nd) { int i = nd->depth; @@ -1586,7 +1577,13 @@ static int reserve_stack(struct nameidata *nd, struct path *link, unsigned seq) if (unlikely(nd->total_link_count++ >= MAXSYMLINKS)) return -ELOOP; - error = nd_alloc_stack(nd); + + if (likely(nd->depth != EMBEDDED_LEVELS)) + return 0; + if (likely(nd->stack != nd->internal)) + return 0; + + error = __nd_alloc_stack(nd); if (likely(!error)) return 0; if (error == -ECHILD) { @@ -1597,7 +1594,7 @@ static int reserve_stack(struct nameidata *nd, struct path *link, unsigned seq) if (unlikely(!grabbed_link)) error = -ECHILD; if (!error) - error = nd_alloc_stack(nd); + error = __nd_alloc_stack(nd); } return error; }