From 3e0ce05e230dbbf8d3887dcea261cd5deeb72e35 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Sun, 2 Jul 2017 19:16:14 -0700 Subject: [PATCH] Support unlink() on symlink --- mount/redox/scheme.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mount/redox/scheme.rs b/mount/redox/scheme.rs index 456b7fc443..1dd10909af 100644 --- a/mount/redox/scheme.rs +++ b/mount/redox/scheme.rs @@ -138,7 +138,7 @@ impl Scheme for FileScheme { fn open(&self, url: &[u8], flags: usize, uid: u32, gid: u32) -> Result { let path = str::from_utf8(url).unwrap_or("").trim_matches('/'); - println!("Open '{}' {:X}", path, flags); + // println!("Open '{}' {:X}", path, flags); let mut fs = self.fs.borrow_mut(); @@ -385,7 +385,11 @@ impl Scheme for FileScheme { } if let Ok(child_name) = child.1.name() { - fs.remove_node(Node::MODE_FILE, child_name, parent.0).and(Ok(0)) + if child.1.is_symlink() { + fs.remove_node(Node::MODE_SYMLINK, child_name, parent.0).and(Ok(0)) + } else { + fs.remove_node(Node::MODE_FILE, child_name, parent.0).and(Ok(0)) + } } else { Err(Error::new(ENOENT)) }