]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: set metadata["root"] from mount method when it's called with a pathname 12505/head
authorJeff Layton <jlayton@redhat.com>
Fri, 16 Dec 2016 15:19:18 +0000 (10:19 -0500)
committerJeff Layton <jlayton@redhat.com>
Fri, 16 Dec 2016 15:19:18 +0000 (10:19 -0500)
Currently, we only set the root properly config file or the
--client_metadata command line option. If a userland client program
tries to call ceph_mount with a pathname, it's not being properly
set.

Since we already hold the mutex, we can just update it directly.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
src/client/Client.cc

index 5220715dad6756431ddc27058c95e5b5ca2aad37..2e0adec83e3514235d4a448fe732d24ebd7197c8 100644 (file)
@@ -5628,8 +5628,10 @@ int Client::mount(const std::string &mount_root, const UserPerm& perms,
   }
 
   filepath fp(CEPH_INO_ROOT);
-  if (!mount_root.empty())
+  if (!mount_root.empty()) {
+    metadata["root"] = mount_root.c_str();
     fp = filepath(mount_root.c_str());
+  }
   while (true) {
     MetaRequest *req = new MetaRequest(CEPH_MDS_OP_GETATTR);
     req->set_filepath(fp);