From 902a11de9a4b08e799820fb87942cb2171b9e095 Mon Sep 17 00:00:00 2001 From: Far Date: Tue, 20 Apr 2021 11:43:14 +0800 Subject: [PATCH] fix: lookup new vnode may cause parent vnode freeing Close #I3MYP4 Change-Id: I533f4bacaf7e6dd500f5ac3ce4f5343b3b885988 --- fs/vfs/vnode.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/vfs/vnode.c b/fs/vfs/vnode.c index ddd9c4eb..808c0865 100644 --- a/fs/vfs/vnode.c +++ b/fs/vfs/vnode.c @@ -398,6 +398,7 @@ static int Step(char **currentDir, struct Vnode **currentVnode, uint32_t flags) goto STEP_FINISH; } + (*currentVnode)->useCount++; if (flags & V_DUMMY) { ret = ProcessVirtualVnode(*currentVnode, flags, &nextVnode); } else { @@ -407,6 +408,7 @@ static int Step(char **currentDir, struct Vnode **currentVnode, uint32_t flags) ret = -ENOSYS; } } + (*currentVnode)->useCount--; if (ret == LOS_OK) { (void)PathCacheAlloc((*currentVnode), nextVnode, nextDir, len); -- GitLab