From b975950b07c92b403e8e4b5fd226aa657f125d61 Mon Sep 17 00:00:00 2001 From: tiann Date: Fri, 3 Feb 2023 10:05:09 +0800 Subject: [PATCH] ksud: fix module update --- userspace/ksud/src/module.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/userspace/ksud/src/module.rs b/userspace/ksud/src/module.rs index 04a61049..becf4d7f 100644 --- a/userspace/ksud/src/module.rs +++ b/userspace/ksud/src/module.rs @@ -528,9 +528,12 @@ where // call the operation func let result = func(id, update_dir); - let _ = remove_dir_all(update_dir); - - std::fs::rename(modules_update_tmp_img, defs::MODULE_UPDATE_IMG)?; + if let Err(e) = std::fs::rename(modules_update_tmp_img, defs::MODULE_UPDATE_IMG) { + warn!("Rename image failed, try copy it."); + std::fs::copy(modules_update_tmp_img, defs::MODULE_UPDATE_IMG) + .with_context(|| "Failed to copy image.".to_string())?; + let _ = std::fs::remove_file(modules_update_tmp_img); + } mark_update()?;