Merge "Don't abort fuse connections for virtiofs." am: 09997fe28a

Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1437953

Change-Id: I25bbea84a3be7d6ae3b74ecfbb076d6520354671
diff --git a/Utils.cpp b/Utils.cpp
index f9f3058..17fee28 100644
--- a/Utils.cpp
+++ b/Utils.cpp
@@ -1442,6 +1442,17 @@
     namespace fs = std::filesystem;
 
     for (const auto& itEntry : fs::directory_iterator("/sys/fs/fuse/connections")) {
+        std::string fsPath = itEntry.path().string() + "/filesystem";
+        std::string fs;
+
+        // Virtiofs is on top of fuse and there isn't any user space daemon.
+        // Android user space doesn't manage it.
+        if (android::base::ReadFileToString(fsPath, &fs, false) &&
+            android::base::Trim(fs) == "virtiofs") {
+            LOG(INFO) << "Ignore virtiofs connection entry " << itEntry.path().string();
+            continue;
+        }
+
         std::string abortPath = itEntry.path().string() + "/abort";
         LOG(DEBUG) << "Aborting fuse connection entry " << abortPath;
         bool ret = writeStringToFile("1", abortPath);