]> git.lizzy.rs Git - rust.git/commitdiff
remove non_durable_rename in rustc_interface::util
authorYoshiki Matsuda <myskjp@gmail.com>
Mon, 2 May 2022 05:06:25 +0000 (14:06 +0900)
committerYoshiki Matsuda <myskjp@gmail.com>
Sat, 2 Jul 2022 13:54:37 +0000 (22:54 +0900)
compiler/rustc_interface/src/util.rs

index fb9258eb4a938fbaf6bea530446b297b4efc1f2e..cbc3ceedc4977b64ca50d3717e8f5de9c6d4148d 100644 (file)
@@ -655,24 +655,6 @@ pub fn build_output_filenames(
     }
 }
 
-#[cfg(not(target_os = "linux"))]
-pub fn non_durable_rename(src: &Path, dst: &Path) -> std::io::Result<()> {
-    std::fs::rename(src, dst)
-}
-
-/// This function attempts to bypass the auto_da_alloc heuristic implemented by some filesystems
-/// such as btrfs and ext4. When renaming over a file that already exists then they will "helpfully"
-/// write back the source file before committing the rename in case a developer forgot some of
-/// the fsyncs in the open/write/fsync(file)/rename/fsync(dir) dance for atomic file updates.
-///
-/// To avoid triggering this heuristic we delete the destination first, if it exists.
-/// The cost of an extra syscall is much lower than getting descheduled for the sync IO.
-#[cfg(target_os = "linux")]
-pub fn non_durable_rename(src: &Path, dst: &Path) -> std::io::Result<()> {
-    let _ = std::fs::remove_file(dst);
-    std::fs::rename(src, dst)
-}
-
 /// Returns a version string such as "1.46.0 (04488afe3 2020-08-24)"
 pub fn version_str() -> Option<&'static str> {
     option_env!("CFG_VERSION")