]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mds: convert const char ptr to string_view
authorPatrick Donnelly <pdonnell@redhat.com>
Fri, 11 Jan 2019 20:30:53 +0000 (12:30 -0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Fri, 11 Jan 2019 23:26:33 +0000 (15:26 -0800)
Trivial refactor.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
21 files changed:
src/mds/CDentry.h
src/mds/CDir.h
src/mds/CInode.cc
src/mds/CInode.h
src/mds/Locker.cc
src/mds/MDCache.cc
src/mds/MDCache.h
src/mds/MDSCacheObject.cc
src/mds/MDSCacheObject.h
src/mds/MDSTable.cc
src/mds/MDSTable.h
src/mds/Migrator.h
src/mds/SessionMap.h
src/mds/SimpleLock.h
src/mds/events/EFragment.h
src/mds/events/ESlaveUpdate.h
src/mds/events/EUpdate.h
src/mds/locks.h
src/mds/mds_table_types.h
src/mds/mdstypes.h
src/messages/MLock.h

index 8af8d522d02f2a853763198ad541040785afa879..2fb75277e119556e9d50edf480202a90bbe204f0 100644 (file)
@@ -124,7 +124,7 @@ public:
     linkage.remote_d_type = dt;
   }
 
-  const char *pin_name(int p) const override {
+  std::string_view pin_name(int p) const override {
     switch (p) {
     case PIN_INODEPIN: return "inodepin";
     case PIN_FRAGMENTING: return "fragmenting";
index 6b03e063b42ba7c00559d2d4a55ecbe9a26814e5..2146874ddc071e96361b63822354d8fed7270526 100644 (file)
@@ -62,7 +62,7 @@ public:
   static const int PIN_EXPORTBOUND = 10;
   static const int PIN_STICKY =      11;
   static const int PIN_SUBTREETEMP = 12;  // used by MDCache::trim_non_auth()
-  const char *pin_name(int p) const override {
+  std::string_view pin_name(int p) const override {
     switch (p) {
     case PIN_DNWAITER: return "dnwaiter";
     case PIN_INOWAITER: return "inowaiter";
@@ -469,9 +469,6 @@ protected:
  public:
   CDentry* lookup_exact_snap(std::string_view dname, snapid_t last);
   CDentry* lookup(std::string_view n, snapid_t snap=CEPH_NOSNAP);
-  CDentry* lookup(const char *n, snapid_t snap=CEPH_NOSNAP) {
-    return lookup(std::string_view(n), snap);
-  }
 
   CDentry* add_null_dentry(std::string_view dname,
                           snapid_t first=2, snapid_t last=CEPH_NOSNAP);
index 28fc20a72c017fe1220dfce845547cb468e71476..c7f682fa498e268a2a1e30aa862446ac2fba9364 100644 (file)
@@ -1070,10 +1070,12 @@ struct C_IO_Inode_Stored : public CInodeIOContext {
   }
 };
 
-object_t InodeStoreBase::get_object_name(inodeno_t ino, frag_t fg, const char *suffix)
+object_t InodeStoreBase::get_object_name(inodeno_t ino, frag_t fg, std::string_view suffix)
 {
   char n[60];
-  snprintf(n, sizeof(n), "%llx.%08llx%s", (long long unsigned)ino, (long long unsigned)fg, suffix ? suffix : "");
+  snprintf(n, sizeof(n), "%llx.%08llx", (long long unsigned)ino, (long long unsigned)fg);
+  ceph_assert(strlen(n) + suffix.size() < sizeof n);
+  strncat(n, suffix.data(), suffix.size());
   return object_t(n);
 }
 
@@ -2053,7 +2055,7 @@ void CInode::finish_scatter_update(ScatterLock *lock, CDir *dir,
       mempool_inode *pi = get_projected_inode();
       fnode_t *pf = dir->project_fnode();
 
-      const char *ename = 0;
+      std::string_view ename = 0;
       switch (lock->get_type()) {
       case CEPH_LOCK_IFILE:
        pf->fragstat.version = pi->dirstat.version;
index bbdf01c0a08db8122950b32f0f579c3be70d27c2..725d80483e3021f342c4f2dfbb4267df001a70d9 100644 (file)
@@ -95,7 +95,7 @@ public:
   bool is_file() const    { return inode.is_file(); }
   bool is_symlink() const { return inode.is_symlink(); }
   bool is_dir() const     { return inode.is_dir(); }
-  static object_t get_object_name(inodeno_t ino, frag_t fg, const char *suffix);
+  static object_t get_object_name(inodeno_t ino, frag_t fg, std::string_view suffix);
 
   /* Full serialization for use in ".inode" root inode objects */
   void encode(bufferlist &bl, uint64_t features, const bufferlist *snap_blob=NULL) const;
@@ -176,7 +176,7 @@ class CInode : public MDSCacheObject, public InodeStoreBase, public Counter<CIno
   static const int PIN_DIRWAITER =        24;
   static const int PIN_SCRUBQUEUE =       25;
 
-  const char *pin_name(int p) const override {
+  std::string_view pin_name(int p) const override {
     switch (p) {
     case PIN_DIRFRAG: return "dirfrag";
     case PIN_CAPS: return "caps";
index 3356a86a39c0ccfa23b2dded004323dd48e08169..75f06870f2f83f45f1da265c7e2e8831707fcffa 100644 (file)
@@ -193,12 +193,12 @@ void Locker::include_snap_rdlocks_wlayout(CInode *in, MutationImpl::LockOpVec& l
 
 struct MarkEventOnDestruct {
   MDRequestRef& mdr;
-  const char* message;
+  std::string_view message;
   bool mark_event;
-  MarkEventOnDestruct(MDRequestRef& _mdr,
-                      const char *_message) : mdr(_mdr),
-                          message(_message),
-                          mark_event(true) {}
+  MarkEventOnDestruct(MDRequestRef& _mdr, std::string_view _message) :
+      mdr(_mdr),
+      message(_message),
+      mark_event(true) {}
   ~MarkEventOnDestruct() {
     if (mark_event)
       mdr->mark_event(message);
@@ -5176,7 +5176,7 @@ void Locker::handle_file_lock(ScatterLock *lock, const MLock::const_ref &m)
     }
   }
 
-  dout(7) << "handle_file_lock a=" << get_lock_action_name(m->get_action())
+  dout(7) << "handle_file_lock a=" << lock->get_lock_action_name(m->get_action())
          << " on " << *lock
          << " from mds." << from << " " 
          << *in << dendl;
index cd1361540ecccc58af40aa02bb118ab2a23d0373..637c2e24fb07a257c8d368b42e69ab79f2b86231 100644 (file)
@@ -492,7 +492,7 @@ struct C_MDC_CreateSystemFile : public MDCacheLogContext {
   }
 };
 
-void MDCache::_create_system_file(CDir *dir, const char *name, CInode *in, MDSInternalContextBase *fin)
+void MDCache::_create_system_file(CDir *dir, std::string_view name, CInode *in, MDSInternalContextBase *fin)
 {
   dout(10) << "_create_system_file " << name << " in " << *dir << dendl;
   CDentry *dn = dir->add_null_dentry(name);
index e161b539fa95d39e3dba3e2a404a9c55c4a06295..cd6a5fb7837483ab165534d0123e7e33f6545e3d 100644 (file)
@@ -935,7 +935,7 @@ public:
   void open_mydir_frag(MDSInternalContextBase *c);
   void populate_mydir();
 
-  void _create_system_file(CDir *dir, const char *name, CInode *in, MDSInternalContextBase *fin);
+  void _create_system_file(CDir *dir, std::string_view name, CInode *in, MDSInternalContextBase *fin);
   void _create_system_file_finish(MutationRef& mut, CDentry *dn,
                                   version_t dpv, MDSInternalContextBase *fin);
 
index 4a1da8827ba7dc5eb64dd8614d77477938ed0678..e403c7f352f390182c55de31736d0d415619fa47 100644 (file)
@@ -48,7 +48,7 @@ void MDSCacheObject::dump(Formatter *f) const
 #ifdef MDS_REF_SET
     f->open_object_section("pins");
     for(const auto& p : ref_map) {
-      f->dump_int(pin_name(p.first), p.second);
+      f->dump_int(pin_name(p.first).data(), p.second);
     }
     f->close_section();
 #endif
index 2f009e13f6790680554aa5db92041dbd915bf73a..3b6867b3b2539fe7ce1e4f0b8fb2d1fe34ac5dd5 100644 (file)
@@ -2,6 +2,7 @@
 #define CEPH_MDSCACHEOBJECT_H
 
 #include <ostream>
+#include <string_view>
 
 #include "common/config.h"
 
@@ -69,7 +70,7 @@ class MDSCacheObject {
   static const int PIN_CLIENTLEASE = 1009;
   static const int PIN_DISCOVERBASE = 1010;
 
-  const char *generic_pin_name(int p) const {
+  std::string_view generic_pin_name(int p) const {
     switch (p) {
     case PIN_REPLICATED: return "replicated";
     case PIN_DIRTY: return "dirty";
@@ -82,7 +83,7 @@ class MDSCacheObject {
     case PIN_TEMPEXPORTING: return "tempexporting";
     case PIN_CLIENTLEASE: return "clientlease";
     case PIN_DISCOVERBASE: return "discoverbase";
-    default: ceph_abort(); return 0;
+    default: ceph_abort(); return std::string_view();
     }
   }
 
@@ -157,7 +158,7 @@ protected:
 #endif
     return ref;
   }
-  virtual const char *pin_name(int by) const = 0;
+  virtual std::string_view pin_name(int by) const = 0;
   //bool is_pinned_by(int by) { return ref_set.count(by); }
   //multiset<int>& get_ref_set() { return ref_set; }
 
index 7107ff3e4e2349f6c1884bbe4a12a563e386d57a..75a5ba32ac931967d24f9decb5a992c962b70443 100644 (file)
@@ -144,9 +144,9 @@ object_t MDSTable::get_object_name() const
 {
   char n[50];
   if (per_mds)
-    snprintf(n, sizeof(n), "mds%d_%s", int(rank), table_name);
+    snprintf(n, sizeof(n), "mds%d_%s", int(rank), table_name.c_str());
   else
-    snprintf(n, sizeof(n), "mds_%s", table_name);
+    snprintf(n, sizeof(n), "mds_%s", table_name.c_str());
   return object_t(n);
 }
 
index 6565868782359667e906a24f4c038695b564f9ed..a7dfca8d0dad70de9da0cceaa9dd59b2d949d82e 100644 (file)
@@ -27,7 +27,7 @@ class MDSTable {
 public:
   MDSRank *mds;
 protected:
-  const char *table_name;
+  std::string table_name;
   bool per_mds;
   mds_rank_t rank;
 
@@ -43,7 +43,7 @@ protected:
   map<version_t, MDSInternalContextBase::vec > waitfor_save;
   
 public:
-  MDSTable(MDSRank *m, const char *n, bool is_per_mds) :
+  MDSTable(MDSRank *m, std::string_view n, bool is_per_mds) :
     mds(m), table_name(n), per_mds(is_per_mds), rank(MDS_RANK_NONE),
     state(STATE_UNDEF),
     version(0), committing_version(0), committed_version(0), projected_version(0) {}
index c59a8c77e8d100a13a7f0d285934be6d6ea36253..75038b8f3b0762a15843900910946142dbcf35c0 100644 (file)
@@ -24,6 +24,7 @@
 #include <map>
 #include <list>
 #include <set>
+#include <string_view>
 
 class MDSRank;
 class CDir;
@@ -60,7 +61,7 @@ public:
   const static int EXPORT_EXPORTING    = 7;  // sent actual export, waiting for ack
   const static int EXPORT_LOGGINGFINISH        = 8;  // logging EExportFinish
   const static int EXPORT_NOTIFYING    = 9;  // waiting for notifyacks
-  static const char *get_export_statename(int s) {
+  static std::string_view get_export_statename(int s) {
     switch (s) {
     case EXPORT_CANCELLING: return "cancelling";
     case EXPORT_LOCKING: return "locking";
@@ -71,7 +72,7 @@ public:
     case EXPORT_EXPORTING: return "exporting";
     case EXPORT_LOGGINGFINISH: return "loggingfinish";
     case EXPORT_NOTIFYING: return "notifying";
-    default: ceph_abort(); return 0;
+    default: ceph_abort(); return std::string_view();
     }
   }
 
@@ -84,7 +85,7 @@ public:
   const static int IMPORT_ACKING        = 6; // logged EImportStart, sent ack, waiting for finish
   const static int IMPORT_FINISHING     = 7; // sent cap imports, waiting for finish
   const static int IMPORT_ABORTING      = 8; // notifying bystanders of an abort before unfreezing
-  static const char *get_import_statename(int s) {
+  static std::string_view get_import_statename(int s) {
     switch (s) {
     case IMPORT_DISCOVERING: return "discovering";
     case IMPORT_DISCOVERED: return "discovered";
@@ -94,7 +95,7 @@ public:
     case IMPORT_ACKING: return "acking";
     case IMPORT_FINISHING: return "finishing";
     case IMPORT_ABORTING: return "aborting";
-    default: ceph_abort(); return 0;
+    default: ceph_abort(); return std::string_view();
     }
   }
 
index c5ae604f9a6e3e607f7b1eb3e92e6c36a0a88f13..39f6126e349be8b9740319f3060f0aa13dd674dc 100644 (file)
@@ -84,7 +84,7 @@ public:
     STATE_KILLING = 5
   };
 
-  const char *get_state_name(int s) const {
+  static std::string_view get_state_name(int s) {
     switch (s) {
     case STATE_CLOSED: return "closed";
     case STATE_OPENING: return "opening";
@@ -203,7 +203,7 @@ public:
     return info.get_client();
   }
 
-  const char *get_state_name() const { return get_state_name(state); }
+  std::string_view get_state_name() const { return get_state_name(state); }
   uint64_t get_state_seq() const { return state_seq; }
   bool is_closed() const { return state == STATE_CLOSED; }
   bool is_opening() const { return state == STATE_OPENING; }
index e5ecf1342d6542821c8c757f929ba14dce16a113..4db35a45802c935f52c002a6525cf1606d1789da 100644 (file)
 // -- lock types --
 // see CEPH_LOCK_*
 
-inline const char *get_lock_type_name(int t) {
-  switch (t) {
-  case CEPH_LOCK_DN: return "dn";
-  case CEPH_LOCK_DVERSION: return "dversion";
-  case CEPH_LOCK_IVERSION: return "iversion";
-  case CEPH_LOCK_IFILE: return "ifile";
-  case CEPH_LOCK_IAUTH: return "iauth";
-  case CEPH_LOCK_ILINK: return "ilink";
-  case CEPH_LOCK_IDFT: return "idft";
-  case CEPH_LOCK_INEST: return "inest";
-  case CEPH_LOCK_IXATTR: return "ixattr";
-  case CEPH_LOCK_ISNAP: return "isnap";
-  case CEPH_LOCK_INO: return "ino";
-  case CEPH_LOCK_IFLOCK: return "iflock";
-  case CEPH_LOCK_IPOLICY: return "ipolicy";
-  default: ceph_abort(); return 0;
-  }
-}
-
 
 struct MutationImpl;
 typedef boost::intrusive_ptr<MutationImpl> MutationRef;
@@ -94,7 +75,7 @@ class SimpleLock {
 public:
   LockType *type;
   
-  const char *get_state_name(int n) const {
+  static std::string_view get_state_name(int n) {
     switch (n) {
     case LOCK_UNDEF: return "UNDEF";
     case LOCK_SYNC: return "sync";
@@ -145,10 +126,47 @@ public:
 
     case LOCK_SNAP_SYNC: return "snap->sync";
 
-    default: ceph_abort(); return 0;
+    default: ceph_abort(); return std::string_view();
+    }
+  }
+
+  static std::string_view get_lock_type_name(int t) {
+    switch (t) {
+      case CEPH_LOCK_DN: return "dn";
+      case CEPH_LOCK_DVERSION: return "dversion";
+      case CEPH_LOCK_IVERSION: return "iversion";
+      case CEPH_LOCK_IFILE: return "ifile";
+      case CEPH_LOCK_IAUTH: return "iauth";
+      case CEPH_LOCK_ILINK: return "ilink";
+      case CEPH_LOCK_IDFT: return "idft";
+      case CEPH_LOCK_INEST: return "inest";
+      case CEPH_LOCK_IXATTR: return "ixattr";
+      case CEPH_LOCK_ISNAP: return "isnap";
+      case CEPH_LOCK_INO: return "ino";
+      case CEPH_LOCK_IFLOCK: return "iflock";
+      case CEPH_LOCK_IPOLICY: return "ipolicy";
+      default: ceph_abort(); return std::string_view();
     }
   }
 
+  static std::string_view get_lock_action_name(int a) {
+    switch (a) {
+      case LOCK_AC_SYNC: return "sync";
+      case LOCK_AC_MIX: return "mix";
+      case LOCK_AC_LOCK: return "lock";
+      case LOCK_AC_LOCKFLUSHED: return "lockflushed";
+
+      case LOCK_AC_SYNCACK: return "syncack";
+      case LOCK_AC_MIXACK: return "mixack";
+      case LOCK_AC_LOCKACK: return "lockack";
+
+      case LOCK_AC_REQSCATTER: return "reqscatter";
+      case LOCK_AC_REQUNSCATTER: return "requnscatter";
+      case LOCK_AC_NUDGE: return "nudge";
+      case LOCK_AC_REQRDLOCK: return "reqrdlock";
+      default: return "???";
+    }
+  }
 
   // waiting
   static const uint64_t WAIT_RD          = (1<<0);  // to read
index 483c4b49a6b828c9ba2a48e01124796af44b8a24..90d9238b030f6f7ca8571907f6fdd33b285da68c 100644 (file)
@@ -51,7 +51,7 @@ public:
     OP_ROLLBACK = 3,
     OP_FINISH = 4 // finish deleting orphan dirfrags
   };
-  static const char *op_name(int o) {
+  static std::string_view op_name(int o) {
     switch (o) {
     case OP_PREPARE: return "prepare";
     case OP_COMMIT: return "commit";
index 193f4a08409c4558a5684a3727e903abbd92da72..23ca430bc1cb15710bb2f78005555a2e89323ac4 100644 (file)
@@ -15,6 +15,8 @@
 #ifndef CEPH_MDS_ESLAVEUPDATE_H
 #define CEPH_MDS_ESLAVEUPDATE_H
 
+#include <string_view>
+
 #include "../LogEvent.h"
 #include "EMetaBlob.h"
 
@@ -123,7 +125,7 @@ public:
   __u8 origop; // link | rename
 
   ESlaveUpdate() : LogEvent(EVENT_SLAVEUPDATE), master(0), op(0), origop(0) { }
-  ESlaveUpdate(MDLog *mdlog, const char *s, metareqid_t ri, int mastermds, int o, int oo) : 
+  ESlaveUpdate(MDLog *mdlog, std::string_view s, metareqid_t ri, int mastermds, int o, int oo) :
     LogEvent(EVENT_SLAVEUPDATE),
     type(s),
     reqid(ri),
index 9984070597d1acb67d7678d2ca5121a0d7c7e425..dc710d5210f8af53801967071d3eb8c1226de973 100644 (file)
@@ -15,6 +15,8 @@
 #ifndef CEPH_MDS_EUPDATE_H
 #define CEPH_MDS_EUPDATE_H
 
+#include <string_view>
+
 #include "../LogEvent.h"
 #include "EMetaBlob.h"
 
@@ -28,7 +30,7 @@ public:
   bool had_slaves;
 
   EUpdate() : LogEvent(EVENT_UPDATE), cmapv(0), had_slaves(false) { }
-  EUpdate(MDLog *mdlog, const char *s) : 
+  EUpdate(MDLog *mdlog, std::string_view s) :
     LogEvent(EVENT_UPDATE),
     type(s), cmapv(0), had_slaves(false) { }
   
index 252cf0ed524001e17af487c7003b4cd8c6128380..5199326723e64821eb71c5cea42a657ef594b0bb 100644 (file)
@@ -123,25 +123,4 @@ enum {
 #define LOCK_AC_FOR_AUTH(a)     ((a) > 0)
 
 
-static inline const char *get_lock_action_name(int a) {
-  switch (a) {
-  case LOCK_AC_SYNC: return "sync";
-  case LOCK_AC_MIX: return "mix";
-  case LOCK_AC_LOCK: return "lock";
-  case LOCK_AC_LOCKFLUSHED: return "lockflushed";
-
-  case LOCK_AC_SYNCACK: return "syncack";
-  case LOCK_AC_MIXACK: return "mixack";
-  case LOCK_AC_LOCKACK: return "lockack";
-
-  case LOCK_AC_REQSCATTER: return "reqscatter";
-  case LOCK_AC_REQUNSCATTER: return "requnscatter";
-  case LOCK_AC_NUDGE: return "nudge";
-  case LOCK_AC_REQRDLOCK: return "reqrdlock";
-  default: return "???";
-  }
-}
-
-
-
 #endif
index bd7ad47d59c2bb1795e3174adb22415c3ec0d9d1..bfb2baa954c2ea360ebae7eba4f222a58baf6c28 100644 (file)
 
 // MDS TABLES
 
+#include <string_view>
+
 enum {
   TABLE_ANCHOR,
   TABLE_SNAP,
 };
 
-inline const char *get_mdstable_name(int t) {
+inline std::string_view get_mdstable_name(int t) {
   switch (t) {
   case TABLE_ANCHOR: return "anchortable";
   case TABLE_SNAP: return "snaptable";
-  default: ceph_abort();
+  default: ceph_abort(); return std::string_view();
   }
 }
 
@@ -44,7 +46,7 @@ enum {
   TABLESERVER_OP_NOTIFY_PREP  = -11,
 };
 
-inline const char *get_mdstableserver_opname(int op) {
+inline std::string_view get_mdstableserver_opname(int op) {
   switch (op) {
   case TABLESERVER_OP_QUERY: return "query";
   case TABLESERVER_OP_QUERY_REPLY: return "query_reply";
@@ -57,7 +59,7 @@ inline const char *get_mdstableserver_opname(int op) {
   case TABLESERVER_OP_SERVER_READY: return "server_ready";
   case TABLESERVER_OP_NOTIFY_ACK: return "notify_ack";
   case TABLESERVER_OP_NOTIFY_PREP: return "notify_prep";
-  default: ceph_abort(); return 0;
+  default: ceph_abort(); return std::string_view();
   }
 }
 
@@ -67,12 +69,12 @@ enum {
   TABLE_OP_DESTROY,
 };
 
-inline const char *get_mdstable_opname(int op) {
+inline std::string_view get_mdstable_opname(int op) {
   switch (op) {
   case TABLE_OP_CREATE: return "create";
   case TABLE_OP_UPDATE: return "update";
   case TABLE_OP_DESTROY: return "destroy";
-  default: ceph_abort(); return 0;
+  default: ceph_abort(); return std::string_view();
   }
 }
 
index 12a6ab4165a2d6c10fc8b4d528b7d551eee794d9..20387fa6ab7e0c97905461686f05ea80cb8ef8a9 100644 (file)
@@ -1268,7 +1268,6 @@ struct string_snap_t {
   snapid_t snapid;
   string_snap_t() {}
   string_snap_t(std::string_view n, snapid_t s) : name(n), snapid(s) {}
-  string_snap_t(const char *n, snapid_t s) : name(n), snapid(s) {}
 
   void encode(bufferlist& bl) const;
   void decode(bufferlist::const_iterator& p);
index 12811e2f72d78f8043b752ccc583c4a21a3afc6e..be1265822689b80fcc593d860e63235882a1b652 100644 (file)
@@ -67,8 +67,8 @@ protected:
 public:
   const char *get_type_name() const override { return "ILock"; }
   void print(ostream& out) const override {
-    out << "lock(a=" << get_lock_action_name(action)
-       << " " << get_lock_type_name(lock_type)
+    out << "lock(a=" << SimpleLock::get_lock_action_name(action)
+       << " " << SimpleLock::get_lock_type_name(lock_type)
        << " " << object_info
        << ")";
   }