From f63a4a17ea82db9400e7592d5d93502f2adc95b5 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Tue, 10 Dec 2024 13:53:06 -0500 Subject: [PATCH] kernel/fs: Unlock the unused-vnodes lock before continue'ing. Otherwise we'll unlock in the wrong order and trigger an "interrupts disabled" assertion in this case. --- src/system/kernel/fs/vfs.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/fs/vfs.cpp b/src/system/kernel/fs/vfs.cpp index 542cb7ff7c..eb232dd299 100644 --- a/src/system/kernel/fs/vfs.cpp +++ b/src/system/kernel/fs/vfs.cpp @@ -1351,8 +1351,10 @@ free_unused_vnodes(int32 level) // has been touched in the meantime, i.e. it is no longer the least // recently used unused vnode and we rather don't free it. unusedVnodesLocker.Lock(); - if (vnode != sUnusedVnodeList.First()) + if (vnode != sUnusedVnodeList.First()) { + unusedVnodesLocker.Unlock(); continue; + } unusedVnodesLocker.Unlock(); ASSERT(!vnode->IsBusy());