From fafdacfc419b3edd9947f2c996f9ebb49cc3f3e7 Mon Sep 17 00:00:00 2001 From: tiann Date: Tue, 21 Feb 2023 23:52:04 +0800 Subject: [PATCH] ksud: copy file when rename failed --- userspace/ksud/src/event.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/userspace/ksud/src/event.rs b/userspace/ksud/src/event.rs index 46708c17..e62da740 100644 --- a/userspace/ksud/src/event.rs +++ b/userspace/ksud/src/event.rs @@ -218,11 +218,20 @@ pub fn on_services() -> Result<()> { pub fn on_boot_completed() -> Result<()> { crate::ksu::report_boot_complete(); + info!("on_boot_completed triggered!"); let module_update_img = Path::new(defs::MODULE_UPDATE_IMG); let module_img = Path::new(defs::MODULE_IMG); if module_update_img.exists() { // this is a update and we successfully booted - std::fs::rename(module_update_img, module_img)?; + if std::fs::rename(module_update_img, module_img).is_err() { + warn!( + "Failed to rename {} to {}, copy it now.", + module_update_img.display(), + module_img.display() + ); + std::fs::copy(module_update_img, module_img) + .with_context(|| "Failed to copy modules_update.img to modules.img")?; + } } Ok(()) }