From f6ef98755c95e82fe568d6b5db8336f471e94e79 Mon Sep 17 00:00:00 2001 From: vasilito Date: Sat, 11 Jul 2026 05:04:47 +0300 Subject: [PATCH] fix borrow issue in filetable logging --- src/scheme/proc.rs | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/scheme/proc.rs b/src/scheme/proc.rs index 51105dc447..d3f5464781 100644 --- a/src/scheme/proc.rs +++ b/src/scheme/proc.rs @@ -766,22 +766,23 @@ impl KernelScheme for ProcScheme { kind: ContextHandle::AwaitingFiletableChange { new_ft }, context, } => { - let ft = new_ft.read(token.token()); - let posix_count = ft.posix_fdtbl.iter().filter(|f| f.is_some()).count(); - let upper_count = ft.upper_fdtbl.iter().filter(|f| f.is_some()).count(); + let (posix_count, upper_count, upper_list) = { + let ft = new_ft.read(token.token()); + let pc = ft.posix_fdtbl.iter().filter(|f| f.is_some()).count(); + let uc = ft.upper_fdtbl.iter().filter(|f| f.is_some()).count(); + let mut ul = String::new(); + for (i, f) in ft.upper_fdtbl.iter().enumerate() { + if f.is_some() { + ul.push_str(&format!(" {:x}", i)); + } + } + (pc, uc, ul) + }; let ctx_name = context.read(token.token()).name; info!( "AwaitingFiletableChange applied: ctx='{}' posix_fds={} upper_fds={}", - ctx_name, - posix_count, - upper_count + ctx_name, posix_count, upper_count ); - let mut upper_list = String::new(); - for (i, f) in ft.upper_fdtbl.iter().enumerate() { - if f.is_some() { - upper_list.push_str(&format!(" {:x}", i)); - } - } info!("upper FDs present:{}", upper_list); context.write(token.token()).files = new_ft; }