summaryrefslogtreecommitdiff
path: root/jni
diff options
context:
space:
mode:
author Dipankar Bhardwaj <dipankarb@google.com> 2024-04-23 21:42:31 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-04-23 21:42:31 +0000
commit0c3347ef96dc9571b492b45fe2b12e23d51d4489 (patch)
treef710f2d3e9e38451a742eb187882b2b88cfc0806 /jni
parentb9e28b6518204ee4c70087fe3eaa374ed4565907 (diff)
parent7c39d391836c564ba1bde7850f1ff61ec5333361 (diff)
Merge "Fix deadlock on reading file paths" into udc-mainline-prod
Diffstat (limited to 'jni')
-rw-r--r--jni/FuseDaemon.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/jni/FuseDaemon.cpp b/jni/FuseDaemon.cpp
index 9bfeec125..e2390e890 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 {
@@ -2680,8 +2680,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 =