From 21a9ce8e53224100f331d9a666bc00c630964724 Mon Sep 17 00:00:00 2001 From: Chuyan Zhang Date: Sun, 3 Dec 2023 00:44:48 -0800 Subject: fix directory entry counting --- ayafs-core/src/memory/cached_inode.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'ayafs-core/src/memory/cached_inode.rs') diff --git a/ayafs-core/src/memory/cached_inode.rs b/ayafs-core/src/memory/cached_inode.rs index 70579c7..c1e1909 100644 --- a/ayafs-core/src/memory/cached_inode.rs +++ b/ayafs-core/src/memory/cached_inode.rs @@ -4,6 +4,7 @@ use crate::{utils, AyaFS}; use and_then_some::BoolExt; use fuser::FileType; use libc::{c_int, EIO, EISDIR, ENOENT, ENOTDIR, ENOTEMPTY}; +use log::debug; impl AyaFS { pub(crate) fn create_file( @@ -103,7 +104,10 @@ impl AyaFS { // 不是 dir -> ENOTDIR return Err(ENOTDIR); } + + let direntry_map = self.dir_entry_map.get(&inode_index).unwrap(); if inode.size > 2 { + debug!("deleting inode {} failed, having {} directory entries", inode_index, direntry_map.len()); // 有 . 和 .. 以外的 entry -> ENOTEMPTY return Err(ENOTEMPTY); } -- cgit v1.2.3-70-g09d2