]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephfs-journal-tool: pass local arg vector for Journal actions
authorVenky Shankar <vshankar@redhat.com>
Mon, 23 Jul 2018 06:30:47 +0000 (02:30 -0400)
committerNathan Cutler <ncutler@suse.com>
Sat, 10 Nov 2018 14:55:32 +0000 (15:55 +0100)
Some helper functions clobber the passed in arg vector. This
causes operations on all but the first rank to fail as the
operations for the first rank tampers with the arg vector.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
(cherry picked from commit d5e482a6c2782993e6e9903eb6f11f5ebe260925)

src/tools/cephfs/JournalTool.cc

index d142bbd010818fd6c0e5f83acb8879fa8fb199ca..cdd66cdc087095946078fff5366acd42d7231326 100644 (file)
@@ -163,13 +163,14 @@ int JournalTool::main(std::vector<const char*> &argv)
   // event mode is only specific for mdlog
   for (auto role : role_selector.get_roles()) {
     rank = role.rank;
+    std::vector<const char *> rank_argv(argv);
     dout(4) << "Executing for rank " << rank << dendl;
     if (mode == std::string("journal")) {
-      r = main_journal(argv);
+      r = main_journal(rank_argv);
     } else if (mode == std::string("header")) {
-      r = main_header(argv);
+      r = main_header(rank_argv);
     } else if (mode == std::string("event")) {
-      r = main_event(argv);
+      r = main_event(rank_argv);
     } else {
       cerr << "Bad command '" << mode << "'" << std::endl;
       return -EINVAL;