| Index: third_party/leveldatabase/env_chromium.cc
|
| diff --git a/third_party/leveldatabase/env_chromium.cc b/third_party/leveldatabase/env_chromium.cc
|
| index 1d2a74e2c6f68cf1eb86d42c94bacbd0bef36bb1..71a5c88077b9bb312173f2be6e235b8b14c922a1 100644
|
| --- a/third_party/leveldatabase/env_chromium.cc
|
| +++ b/third_party/leveldatabase/env_chromium.cc
|
| @@ -616,10 +616,14 @@ Status ChromiumEnv::DeleteFile(const std::string& fname) {
|
|
|
| Status ChromiumEnv::CreateDir(const std::string& name) {
|
| Status result;
|
| - if (!::file_util::CreateDirectory(CreateFilePath(name))) {
|
| - result = MakeIOError(name, "Could not create directory.", kCreateDir);
|
| - RecordErrorAt(kCreateDir);
|
| - }
|
| + base::PlatformFileError error = base::PLATFORM_FILE_OK;
|
| + Retrier retrier(kCreateDir, this);
|
| + do {
|
| + if (::file_util::CreateDirectoryAndGetError(CreateFilePath(name), &error))
|
| + return result;
|
| + } while (retrier.ShouldKeepTrying(error));
|
| + result = MakeIOError(name, "Could not create directory.", kCreateDir);
|
| + RecordErrorAt(kCreateDir);
|
| return result;
|
| }
|
|
|
|
|