From 8dbfd3846e6058affaa4aa6e7b0e502f5e0b80f6 Mon Sep 17 00:00:00 2001 From: zhangdengyu Date: Mon, 26 Sep 2022 16:37:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangdengyu --- fs/vfs/bcache/src/bcache.c | 5 ++++- fs/vfs/vnode.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/fs/vfs/bcache/src/bcache.c b/fs/vfs/bcache/src/bcache.c index c1e76376..4c1e0732 100644 --- a/fs/vfs/bcache/src/bcache.c +++ b/fs/vfs/bcache/src/bcache.c @@ -581,8 +581,11 @@ static OsBcacheBlock *AllocNewBlock(OsBcache *bc, BOOL read, UINT64 num) DelBlock(bc, prefer); } + if (prefer->used) { /* do not combine with next check */ + MergeSyncBlocks(bc, prefer); /* prefer->used may be changed here */ + } + if (prefer->used) { - MergeSyncBlocks(bc, prefer); BcacheSyncBlock(bc, prefer); DelBlock(bc, prefer); } diff --git a/fs/vfs/vnode.c b/fs/vfs/vnode.c index fb0ce330..41fb043f 100644 --- a/fs/vfs/vnode.c +++ b/fs/vfs/vnode.c @@ -260,7 +260,7 @@ int VnodeDrop(void) static char *NextName(char *pos, uint8_t *len) { char *name = NULL; - while (*pos == '/') { + while (*pos != 0 && *pos == '/') { pos++; } if (*pos == '\0') { -- GitLab