always set FsCreateOption_BigFile in fs.cpp when creating 4GiB+ file.
This commit is contained in:
@@ -99,7 +99,6 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
Result DumpToFile(ui::ProgressBox* pbox, fs::Fs* fs, const fs::FsPath& root, BaseSource* source, std::span<const fs::FsPath> paths) {
|
Result DumpToFile(ui::ProgressBox* pbox, fs::Fs* fs, const fs::FsPath& root, BaseSource* source, std::span<const fs::FsPath> paths) {
|
||||||
constexpr s64 BIG_FILE_SIZE = 1024ULL*1024ULL*1024ULL*4ULL;
|
|
||||||
const auto is_file_based_emummc = App::IsFileBaseEmummc();
|
const auto is_file_based_emummc = App::IsFileBaseEmummc();
|
||||||
|
|
||||||
for (const auto& path : paths) {
|
for (const auto& path : paths) {
|
||||||
@@ -113,8 +112,7 @@ Result DumpToFile(ui::ProgressBox* pbox, fs::Fs* fs, const fs::FsPath& root, Bas
|
|||||||
fs->CreateDirectoryRecursivelyWithPath(temp_path);
|
fs->CreateDirectoryRecursivelyWithPath(temp_path);
|
||||||
fs->DeleteFile(temp_path);
|
fs->DeleteFile(temp_path);
|
||||||
|
|
||||||
const auto flags = file_size >= BIG_FILE_SIZE ? FsCreateOption_BigFile : 0;
|
R_TRY(fs->CreateFile(temp_path, file_size));
|
||||||
R_TRY(fs->CreateFile(temp_path, file_size, flags));
|
|
||||||
ON_SCOPE_EXIT(fs->DeleteFile(temp_path));
|
ON_SCOPE_EXIT(fs->DeleteFile(temp_path));
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -112,6 +112,10 @@ FsPath AppendPath(const FsPath& root_path, const FsPath& _file_path) {
|
|||||||
Result CreateFile(FsFileSystem* fs, const FsPath& path, u64 size, u32 option, bool ignore_read_only) {
|
Result CreateFile(FsFileSystem* fs, const FsPath& path, u64 size, u32 option, bool ignore_read_only) {
|
||||||
R_UNLESS(ignore_read_only || !is_read_only_root(path), Result_FsReadOnly);
|
R_UNLESS(ignore_read_only || !is_read_only_root(path), Result_FsReadOnly);
|
||||||
|
|
||||||
|
if (size >= 1024ULL*1024ULL*1024ULL*4ULL) {
|
||||||
|
option |= FsCreateOption_BigFile;
|
||||||
|
}
|
||||||
|
|
||||||
R_TRY(fsFsCreateFile(fs, path, size, option));
|
R_TRY(fsFsCreateFile(fs, path, size, option));
|
||||||
fsFsCommit(fs);
|
fsFsCommit(fs);
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
|
|||||||
Reference in New Issue
Block a user