]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/ceph_fuse.cc
import ceph quincy 17.2.6
[ceph.git] / ceph / src / ceph_fuse.cc
index 115856f381cfd9cbfcd0bf7d8cee99b44677fce9..3fa5346b4634d4729ee15894cd7fd101ae6e8ec3 100644 (file)
@@ -198,14 +198,21 @@ int main(int argc, const char **argv, const char *envp[]) {
       ~RemountTest() override {}
       void *entry() override {
 #if defined(__linux__)
-       int ver = get_linux_version();
-       ceph_assert(ver != 0);
-        bool client_try_dentry_invalidate = g_conf().get_val<bool>(
-          "client_try_dentry_invalidate");
-       bool can_invalidate_dentries =
-          client_try_dentry_invalidate && ver < KERNEL_VERSION(3, 18, 0);
-       auto test_result = client->test_dentry_handling(can_invalidate_dentries);
-       int tr = test_result.first;
+        bool can_invalidate_dentries = g_conf().get_val<bool>(
+         "client_try_dentry_invalidate");
+        uint64_t max_retries = g_conf().get_val<uint64_t>(
+          "client_max_retries_on_remount_failure");
+        std::pair<int, bool> test_result;
+        uint64_t i = 0;
+        int tr = 0;
+        do {
+          test_result = client->test_dentry_handling(can_invalidate_dentries);
+          tr = test_result.first;
+          if (tr) {
+            sleep(1);
+          }
+        } while (++i < max_retries && tr);
+
        bool abort_on_failure = test_result.second;
         bool client_die_on_failed_dentry_invalidate = g_conf().get_val<bool>(
           "client_die_on_failed_dentry_invalidate");