diff --git a/vendor/smb-server/src/fs/local.rs b/vendor/smb-server/src/fs/local.rs index 051291c..a44135a 100644 --- a/vendor/smb-server/src/fs/local.rs +++ b/vendor/smb-server/src/fs/local.rs @@ -435,8 +435,8 @@ impl ShareBackend for LocalFsBackend { let xattr_name = name.to_string(); spawn_blocking(move || { - // Get absolute path using as_std_path() - let full_path = root.as_std_path().join(&rel); + // Get absolute path: dereference Arc first + let full_path = (*root).as_std_path().join(&rel); // Use xattr::get which returns Option> match xattr::get(&full_path, &xattr_name) { @@ -460,7 +460,7 @@ impl ShareBackend for LocalFsBackend { let value = value.to_vec(); spawn_blocking(move || { - let full_path = root.as_std_path().join(&rel); + let full_path = (*root).as_std_path().join(&rel); xattr::set(&full_path, &xattr_name, &value) .map_err(|e| SmbError::Io(e.into())) }) @@ -478,7 +478,7 @@ impl ShareBackend for LocalFsBackend { let xattr_name = name.to_string(); spawn_blocking(move || { - let full_path = root.as_std_path().join(&rel); + let full_path = (*root).as_std_path().join(&rel); xattr::remove(&full_path, &xattr_name) .map_err(|e| SmbError::Io(e.into())) }) @@ -491,7 +491,7 @@ impl ShareBackend for LocalFsBackend { let root = Arc::clone(&self.root); spawn_blocking(move || { - let full_path = root.as_std_path().join(&rel); + let full_path = (*root).as_std_path().join(&rel); // xattr::list returns iterator of OsString let attrs: Vec = xattr::list(&full_path)