diff --git a/rpcs3/Emu/Cell/lv2/sys_fs.cpp b/rpcs3/Emu/Cell/lv2/sys_fs.cpp index a5358dc32..27cb7c92a 100644 --- a/rpcs3/Emu/Cell/lv2/sys_fs.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_fs.cpp @@ -230,6 +230,11 @@ error_code sys_fs_open(vm::cptr path, s32 flags, vm::ptr fd, s32 mode if (flags & CELL_FS_O_CREAT) { open_mode += fs::create; + + if (flags & CELL_FS_O_EXCL) + { + open_mode += fs::excl; + } } if (flags & CELL_FS_O_TRUNC) @@ -242,18 +247,6 @@ error_code sys_fs_open(vm::cptr path, s32 flags, vm::ptr fd, s32 mode open_mode += fs::append; } - if (flags & CELL_FS_O_EXCL) - { - if (flags & CELL_FS_O_CREAT) - { - open_mode += fs::excl; - } - else - { - open_mode = {}; // error - } - } - if (flags & CELL_FS_O_MSELF) { open_mode = fs::read;