summaryrefslogtreecommitdiffstats
path: root/ignore/src/walk.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ignore/src/walk.rs')
-rw-r--r--ignore/src/walk.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/ignore/src/walk.rs b/ignore/src/walk.rs
index 8a15984d..8f0a555a 100644
--- a/ignore/src/walk.rs
+++ b/ignore/src/walk.rs
@@ -11,7 +11,7 @@ use std::time::Duration;
use std::vec;
use crossbeam::sync::MsQueue;
-use same_file::is_same_file;
+use same_file::Handle;
use walkdir::{self, WalkDir};
use dir::{Ignore, IgnoreBuilder};
@@ -1308,11 +1308,11 @@ fn check_symlink_loop(
child_path: &Path,
child_depth: usize,
) -> Result<(), Error> {
+ let hchild = Handle::from_path(child_path).map_err(|err| {
+ Error::from(err).with_path(child_path).with_depth(child_depth)
+ })?;
for ig in ig_parent.parents().take_while(|ig| !ig.is_absolute_parent()) {
- let same = try!(is_same_file(ig.path(), child_path).map_err(|err| {
- Error::from(err).with_path(child_path).with_depth(child_depth)
- }));
- if same {
+ if ig.handle().map_or(true, |parent| parent == &hchild) {
return Err(Error::Loop {
ancestor: ig.path().to_path_buf(),
child: child_path.to_path_buf(),