]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: give full error message on failed remount 19181/head
authorPatrick Donnelly <pdonnell@redhat.com>
Mon, 27 Nov 2017 18:45:31 +0000 (10:45 -0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Tue, 28 Nov 2017 20:45:57 +0000 (12:45 -0800)
Fixes: http://tracker.ceph.com/issues/22254
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/client/Client.cc

index ddd517aa4b628f5f8c6d3489ca85b1455ed41a3c..e5d3ae3a0fa06235eedc1d177b44015c84a70176 100644 (file)
@@ -18,6 +18,7 @@
 #include <sys/types.h>
 #include <time.h>
 #include <utime.h>
+#include <string.h>
 #include <sys/stat.h>
 #include <sys/param.h>
 #include <fcntl.h>
@@ -4020,12 +4021,14 @@ private:
 public:
   explicit C_Client_Remount(Client *c) : client(c) {}
   void finish(int r) override {
-    assert (r == 0);
+    assert(r == 0);
+    errno = 0;
     r = client->remount_cb(client->callback_handle);
     if (r != 0) {
+      int e = errno;
       client_t whoami = client->get_nodeid();
       lderr(client->cct) << "tried to remount (to trim kernel dentries) and got error "
-                        << r << dendl;
+                        << r << " (errno = " << e << "; " << strerror(e) << ")" << dendl;
       if (client->require_remount && !client->unmounting) {
        assert(0 == "failed to remount for kernel dentry trimming");
       }