From dfea64ef558c57c2d0a4918c029fd98bcc6fd218 Mon Sep 17 00:00:00 2001 From: Peter Hunt Date: Mon, 29 Jan 2024 16:06:30 -0500 Subject: [PATCH] ignore Read-only file system error on sysctl set Signed-off-by: Peter Hunt --- src/network/core_utils.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/network/core_utils.rs b/src/network/core_utils.rs index 8638f98f4..68910dacb 100644 --- a/src/network/core_utils.rs +++ b/src/network/core_utils.rs @@ -282,7 +282,18 @@ impl CoreUtils { } Err(e) => return Err(e), } - ctl.set_value_string(val) + let result = ctl.set_value_string(val); + // if we have a read only /proc we ignore it as well + match result { + Ok(_) => result, + Err(SysctlError::IoError(e)) => { + if e.raw_os_error() == Some(libc::EROFS) { + return Ok(String::from("")); + } + return Err(e.into()); + } + Err(err) => return Err(err), + } } } @@ -433,9 +444,6 @@ pub fn disable_ipv6_autoconf(if_name: &str) -> NetavarkResult<()> { // just ignore that case } - // if we have a read only /proc we ignore it as well - SysctlError::IoError(ref e) if e.raw_os_error() == Some(libc::EROFS) => {} - _ => { return Err(NetavarkError::wrap( "failed to set autoconf sysctl",