From 3d6f9cec6e7f2259589144d598d4703e3ab5bcbc Mon Sep 17 00:00:00 2001 From: Wildan M Date: Mon, 30 Mar 2026 21:04:03 +0700 Subject: [PATCH] Skip missing getdents item --- src/mount/redox/resource.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mount/redox/resource.rs b/src/mount/redox/resource.rs index cabaf7fc25..400e257aaa 100644 --- a/src/mount/redox/resource.rs +++ b/src/mount/redox/resource.rs @@ -12,7 +12,7 @@ use syscall::flag::{ MapFlags, F_GETFL, F_SETFL, MODE_PERM, O_ACCMODE, O_APPEND, O_RDONLY, O_RDWR, O_WRONLY, PROT_READ, PROT_WRITE, }; -use syscall::{EBADFD, PAGE_SIZE}; +use syscall::{EBADFD, ENOENT, PAGE_SIZE}; use crate::{Disk, Node, Transaction, TreePtr, BLOCK_SIZE}; @@ -282,7 +282,11 @@ impl Resource for DirResource { Some(data) => { let opaque_offset = opaque_offset as usize; for (idx, entry) in data.iter().enumerate().skip(opaque_offset) { - let child = tx.read_tree(entry.node_ptr)?; + let child = match tx.read_tree(entry.node_ptr) { + Ok(r) => r, + Err(Error { errno: ENOENT }) => continue, + Err(err) => return Err(err), + }; let result = buf.entry(DirEntry { inode: child.id() as u64, next_opaque_id: idx as u64 + 1,