From 85f8537017d8cce964e208efaf3cd8363c6c8f1f Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 20 Apr 2021 10:12:48 -0700 Subject: [PATCH] Worktree: silence log message when dir is overwritten by file Co-Authored-By: Antonio Scandurra --- zed/src/worktree.rs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/zed/src/worktree.rs b/zed/src/worktree.rs index 471b5d1d3a..749390bf83 100644 --- a/zed/src/worktree.rs +++ b/zed/src/worktree.rs @@ -782,7 +782,7 @@ impl BackgroundScanner { let inode = metadata.ino(); let is_symlink = fs::symlink_metadata(&path) - .context("symlink_metadata")? + .context("failed to read symlink metadata")? .file_type() .is_symlink(); let parent = if path == root_path { @@ -790,7 +790,7 @@ impl BackgroundScanner { } else { Some( fs::metadata(path.parent().unwrap()) - .context("parent metadata")? + .context("failed to read parent inode")? .ino(), ) }; @@ -825,14 +825,11 @@ impl BackgroundScanner { ))) } } - Err(err) => { - dbg!(&err); - if err.kind() == io::ErrorKind::NotFound { - Ok(None) - } else { - Err(anyhow::Error::new(err)).context("fs::metadata") - } - } + Err(err) => match (err.kind(), err.raw_os_error()) { + (io::ErrorKind::NotFound, _) => Ok(None), + (io::ErrorKind::Other, Some(libc::ENOTDIR)) => Ok(None), + _ => Err(anyhow::Error::new(err)), + }, } }