From: Al Viro Date: Sat, 3 Apr 2021 20:49:44 +0000 (-0400) Subject: namei: make sure nd->depth is always valid X-Git-Tag: v5.15~813^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7962c7d196e36aa597fadb78c1cb4fe7e209f803;p=platform%2Fkernel%2Flinux-starfive.git namei: make sure nd->depth is always valid Zero it in set_nameidata() rather than in path_init(). That way it always matches the number of valid nd->stack[] entries. Since terminate_walk() does zero it (after having emptied the stack), we don't need to reinitialize it in subsequent path_init(). Signed-off-by: Al Viro --- diff --git a/fs/namei.c b/fs/namei.c index 40ffb24..d38b17a 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -581,6 +581,7 @@ static void __set_nameidata(struct nameidata *p, int dfd, struct filename *name) { struct nameidata *old = current->nameidata; p->stack = p->internal; + p->depth = 0; p->dfd = dfd; p->name = name; p->path.mnt = NULL; @@ -2320,7 +2321,6 @@ static const char *path_init(struct nameidata *nd, unsigned flags) nd->flags = flags; nd->state |= ND_JUMPED; - nd->depth = 0; nd->m_seq = __read_seqcount_begin(&mount_lock.seqcount); nd->r_seq = __read_seqcount_begin(&rename_lock.seqcount);