MCPcopy Create free account
hub / github.com/Starry-OS/StarryOS / unlink

Method unlink

api/src/vfs/tmp.rs:410–425  ·  view source on GitHub ↗
(&self, name: &str)

Source from the content-addressed store, hash-verified

408 }
409
410 fn unlink(&self, name: &str) -> VfsResult<()> {
411 let dir = self.inode.as_dir()?;
412 let mut entries = dir.entries.lock();
413
414 let Some(entry) = entries.get(name) else {
415 return Err(VfsError::NotFound);
416 };
417 if let NodeContent::Dir(DirContent { entries }) = &entry.get().content
418 && entries.lock().len() > 2
419 {
420 return Err(VfsError::DirectoryNotEmpty);
421 }
422 entries.remove(name);
423
424 Ok(())
425 }
426
427 // TODO: atomicity
428 fn rename(&self, src_name: &str, dst_dir: &DirNode, dst_name: &str) -> VfsResult<()> {

Callers

nothing calls this directly

Calls 3

as_dirMethod · 0.80
getMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected