From 75ee66892203ae4293afe9e148b0702394f4c276 Mon Sep 17 00:00:00 2001 From: Eladash Date: Mon, 14 Oct 2019 12:40:06 +0300 Subject: [PATCH] Log fs::g_tls_error on ACCESS_ERROR errors --- rpcs3/Emu/Cell/Modules/cellGame.cpp | 5 +++-- rpcs3/Emu/Cell/Modules/cellSaveData.cpp | 2 +- rpcs3/Emu/Cell/Modules/cellSysutil.cpp | 5 ++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/rpcs3/Emu/Cell/Modules/cellGame.cpp b/rpcs3/Emu/Cell/Modules/cellGame.cpp index a53561a941..210cb95bb4 100644 --- a/rpcs3/Emu/Cell/Modules/cellGame.cpp +++ b/rpcs3/Emu/Cell/Modules/cellGame.cpp @@ -670,7 +670,7 @@ error_code cellGameCreateGameData(vm::ptr init, vm::ptr init, vm::ptr size) } else { + cellGame.error("cellGameGetSizeKb(): unexpexcted error on path '%s' (%s)", local_dir, fs::g_tls_error); return CELL_GAME_ERROR_ACCESS_ERROR; } } diff --git a/rpcs3/Emu/Cell/Modules/cellSaveData.cpp b/rpcs3/Emu/Cell/Modules/cellSaveData.cpp index 98c65a30bd..8da5824438 100644 --- a/rpcs3/Emu/Cell/Modules/cellSaveData.cpp +++ b/rpcs3/Emu/Cell/Modules/cellSaveData.cpp @@ -1088,7 +1088,7 @@ static NEVER_INLINE error_code savedata_op(ppu_thread& ppu, u32 operation, u32 v // Create save directory if necessary if (psf.size() && save_entry.isNew && !fs::create_dir(dir_path)) { - cellSaveData.warning("savedata_op(): failed to create %s", dir_path); + cellSaveData.warning("savedata_op(): failed to create %s (%s)", dir_path, fs::g_tls_error); return CELL_SAVEDATA_ERROR_ACCESS_ERROR; } diff --git a/rpcs3/Emu/Cell/Modules/cellSysutil.cpp b/rpcs3/Emu/Cell/Modules/cellSysutil.cpp index a69aac0ef7..af61032e27 100644 --- a/rpcs3/Emu/Cell/Modules/cellSysutil.cpp +++ b/rpcs3/Emu/Cell/Modules/cellSysutil.cpp @@ -322,13 +322,12 @@ s32 cellSysCacheClear() std::string local_dir = vfs::get(cache->cache_path); - if (!fs::exists(local_dir) || !fs::is_dir(local_dir)) + if (!fs::remove_all(local_dir, false)) { + cellSysutil.error("cellSysCacheClear(): failed to clear directory '%s' (%s)", cache->cache_path, fs::g_tls_error); return CELL_SYSCACHE_ERROR_ACCESS_ERROR; } - fs::remove_all(local_dir, false); - return CELL_SYSCACHE_RET_OK_CLEARED; }