Skip to content

Commit

Permalink
fs: copy: Use File::set_permissions instead of fs::set_permissions
Browse files Browse the repository at this point in the history
We already got the open file descriptor at this point.
Don't make the kernel resolve the path again.
  • Loading branch information
nicokoch committed May 30, 2018
1 parent 2408095 commit 9b6940d
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/libstd/sys/unix/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -807,14 +807,14 @@ pub fn copy(from: &Path, to: &Path) -> io::Result<u64> {
let perm = reader.metadata()?.permissions();

let ret = io::copy(&mut reader, &mut writer)?;
set_permissions(to, perm)?;
writer.set_permissions(perm)?;
Ok(ret)
}

#[cfg(any(target_os = "linux", target_os = "android"))]
pub fn copy(from: &Path, to: &Path) -> io::Result<u64> {
use cmp;
use fs::{File, set_permissions};
use fs::File;
use sync::atomic::{AtomicBool, Ordering};

// Kernel prior to 4.5 don't have copy_file_range
Expand Down Expand Up @@ -886,14 +886,14 @@ pub fn copy(from: &Path, to: &Path) -> io::Result<u64> {
// Try again with fallback method
assert_eq!(written, 0);
let ret = io::copy(&mut reader, &mut writer)?;
set_permissions(to, perm)?;
writer.set_permissions(perm)?;
return Ok(ret)
},
_ => return Err(err),
}
}
}
}
set_permissions(to, perm)?;
writer.set_permissions(perm)?;
Ok(written)
}

0 comments on commit 9b6940d

Please sign in to comment.