From 0d39c4a78a24d5bc52dc6ee81fe035a64abb853e Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Wed, 10 Aug 2022 06:27:37 +0200 Subject: [PATCH] IOS/FS: Skip writing FST if SetMetadata() changes nothing. --- Source/Core/Core/IOS/FS/HostBackend/FS.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/IOS/FS/HostBackend/FS.cpp b/Source/Core/Core/IOS/FS/HostBackend/FS.cpp index 27daeeafb1..1ca9a2faa1 100644 --- a/Source/Core/Core/IOS/FS/HostBackend/FS.cpp +++ b/Source/Core/Core/IOS/FS/HostBackend/FS.cpp @@ -678,11 +678,15 @@ ResultCode HostFileSystem::SetMetadata(Uid caller_uid, const std::string& path, if (entry->data.uid != uid && entry->data.is_file && !is_empty) return ResultCode::FileNotEmpty; - entry->data.gid = gid; - entry->data.uid = uid; - entry->data.attribute = attr; - entry->data.modes = modes; - SaveFst(); + if (entry->data.gid != gid || entry->data.uid != uid || entry->data.attribute != attr || + entry->data.modes != modes) + { + entry->data.gid = gid; + entry->data.uid = uid; + entry->data.attribute = attr; + entry->data.modes = modes; + SaveFst(); + } return ResultCode::Success; }