diff options
author | 2024-04-23 21:56:28 +0000 | |
---|---|---|
committer | 2024-04-23 21:56:28 +0000 | |
commit | a4bee50cd7e27bcb65ee38bed84716a5c7fe5e81 (patch) | |
tree | f6d475e8e4808bcfd35835bc71fb43ba538113d6 /jni | |
parent | 28b3b771cdebcac1a75bf6c11574d16eae6bced3 (diff) | |
parent | 0c3347ef96dc9571b492b45fe2b12e23d51d4489 (diff) |
Merge "Fix deadlock on reading file paths" into udc-mainline-prod am: 0c3347ef96
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/providers/MediaProvider/+/26900868
Change-Id: I68a8910dd7ea6149eec8981462669cb3d44e3163
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'jni')
-rw-r--r-- | jni/FuseDaemon.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/jni/FuseDaemon.cpp b/jni/FuseDaemon.cpp index 743551c2b..73f92d6f7 100644 --- a/jni/FuseDaemon.cpp +++ b/jni/FuseDaemon.cpp @@ -408,7 +408,7 @@ struct fuse { // LevelDb Connection Map std::map<std::string, leveldb::DB*> level_db_connection_map; - std::mutex level_db_mutex; + std::recursive_mutex level_db_mutex; }; struct OpenInfo { @@ -2690,8 +2690,9 @@ std::vector<std::string> FuseDaemon::ReadFilePathsFromLevelDb(const std::string& std::vector<std::string> file_paths; if (!CheckLevelDbConnection(volume_name)) { - LOG(INFO) << "ReadFilePathsFromLevelDb: Missing leveldb connection, attempting setup."; - SetupLevelDbInstances(); + fuse->level_db_mutex.unlock(); + LOG(ERROR) << "ReadFilePathsFromLevelDb: Missing leveldb connection"; + return file_paths; } leveldb::Iterator* it = |