diff --git a/src/main.rs b/src/main.rs index f62a996..0354cef 100644 --- a/src/main.rs +++ b/src/main.rs @@ -192,10 +192,10 @@ fn main() { let limit_filesystem = options.get_flag("limit_filesystem"); let follow_links = options.get_flag("dereference_links"); - let simplified_dirs = simplify_dir_names(target_dirs); let allowed_filesystems = limit_filesystem - .then(|| get_filesystem_devices(simplified_dirs.iter())) + .then(|| get_filesystem_devices(target_dirs.iter().cloned())) .unwrap_or_default(); + let simplified_dirs = simplify_dir_names(target_dirs); let ignored_full_path: HashSet = ignore_directories .into_iter() diff --git a/src/utils.rs b/src/utils.rs index 4d8bdab..e85c718 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -34,11 +34,12 @@ pub fn simplify_dir_names>(filenames: Vec

) -> HashSet top_level_names } -pub fn get_filesystem_devices<'a, P: IntoIterator>(paths: P) -> HashSet { +pub fn get_filesystem_devices<'a, P: IntoIterator>(paths: P) -> HashSet { // Gets the device ids for the filesystems which are used by the argument paths paths .into_iter() - .filter_map(|p| match get_metadata(p, false) { + .map(PathBuf::from) + .filter_map(|p| match get_metadata(&p, false) { Some((_size, Some((_id, dev)), _time)) => Some(dev), _ => None, })