From 7e3e9b2d01a82fc94cc8c9d19e623ab7d778f01a Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 1 Jun 2017 12:24:51 -0700 Subject: [PATCH] Ignore ENOTSUP in file locking on Linux too Apparently there are some filesystems that return this! Closes #4096 --- src/cargo/util/flock.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/cargo/util/flock.rs b/src/cargo/util/flock.rs index 1be77b2d843..505a88a008a 100644 --- a/src/cargo/util/flock.rs +++ b/src/cargo/util/flock.rs @@ -271,10 +271,11 @@ fn acquire(config: &Config, match try() { Ok(()) => return Ok(()), - // Like above, where we ignore file locking on NFS mounts on Linux, we - // do the same on OSX here. Note that ENOTSUP is an OSX_specific - // constant. - #[cfg(target_os = "macos")] + // In addition to ignoring NFS which is commonly not working we also + // just ignore locking on filesystems that look like they don't + // implement file locking. We detect that here via the return value of + // locking (e.g. inspecting errno). + #[cfg(unix)] Err(ref e) if e.raw_os_error() == Some(libc::ENOTSUP) => return Ok(()), #[cfg(target_os = "linux")]