From 6dfa87f65cd7b0116a9e57f781450914c782ed02 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Fri, 11 Jan 2019 12:30:53 -0800 Subject: [PATCH] mds: convert const char ptr to string_view Trivial refactor. Signed-off-by: Patrick Donnelly --- src/mds/CDentry.h | 2 +- src/mds/CDir.h | 5 +-- src/mds/CInode.cc | 8 +++-- src/mds/CInode.h | 4 +-- src/mds/Locker.cc | 12 +++---- src/mds/MDCache.cc | 2 +- src/mds/MDCache.h | 2 +- src/mds/MDSCacheObject.cc | 2 +- src/mds/MDSCacheObject.h | 7 ++-- src/mds/MDSTable.cc | 4 +-- src/mds/MDSTable.h | 4 +-- src/mds/Migrator.h | 9 +++--- src/mds/SessionMap.h | 4 +-- src/mds/SimpleLock.h | 60 +++++++++++++++++++++++------------ src/mds/events/EFragment.h | 2 +- src/mds/events/ESlaveUpdate.h | 4 ++- src/mds/events/EUpdate.h | 4 ++- src/mds/locks.h | 21 ------------ src/mds/mds_table_types.h | 14 ++++---- src/mds/mdstypes.h | 1 - src/messages/MLock.h | 4 +-- 21 files changed, 89 insertions(+), 86 deletions(-) diff --git a/src/mds/CDentry.h b/src/mds/CDentry.h index 8af8d522d02..2fb75277e11 100644 --- a/src/mds/CDentry.h +++ b/src/mds/CDentry.h @@ -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"; diff --git a/src/mds/CDir.h b/src/mds/CDir.h index 6b03e063b42..2146874ddc0 100644 --- a/src/mds/CDir.h +++ b/src/mds/CDir.h @@ -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); diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 28fc20a72c0..c7f682fa498 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -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; diff --git a/src/mds/CInode.h b/src/mds/CInode.h index bbdf01c0a08..725d80483e3 100644 --- a/src/mds/CInode.h +++ b/src/mds/CInode.h @@ -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 Countermark_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; diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index cd1361540ec..637c2e24fb0 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -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); diff --git a/src/mds/MDCache.h b/src/mds/MDCache.h index e161b539fa9..cd6a5fb7837 100644 --- a/src/mds/MDCache.h +++ b/src/mds/MDCache.h @@ -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); diff --git a/src/mds/MDSCacheObject.cc b/src/mds/MDSCacheObject.cc index 4a1da8827ba..e403c7f352f 100644 --- a/src/mds/MDSCacheObject.cc +++ b/src/mds/MDSCacheObject.cc @@ -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 diff --git a/src/mds/MDSCacheObject.h b/src/mds/MDSCacheObject.h index 2f009e13f67..3b6867b3b25 100644 --- a/src/mds/MDSCacheObject.h +++ b/src/mds/MDSCacheObject.h @@ -2,6 +2,7 @@ #define CEPH_MDSCACHEOBJECT_H #include +#include #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& get_ref_set() { return ref_set; } diff --git a/src/mds/MDSTable.cc b/src/mds/MDSTable.cc index 7107ff3e4e2..75a5ba32ac9 100644 --- a/src/mds/MDSTable.cc +++ b/src/mds/MDSTable.cc @@ -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); } diff --git a/src/mds/MDSTable.h b/src/mds/MDSTable.h index 65658687823..a7dfca8d0da 100644 --- a/src/mds/MDSTable.h +++ b/src/mds/MDSTable.h @@ -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 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) {} diff --git a/src/mds/Migrator.h b/src/mds/Migrator.h index c59a8c77e8d..75038b8f3b0 100644 --- a/src/mds/Migrator.h +++ b/src/mds/Migrator.h @@ -24,6 +24,7 @@ #include #include #include +#include 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(); } } diff --git a/src/mds/SessionMap.h b/src/mds/SessionMap.h index c5ae604f9a6..39f6126e349 100644 --- a/src/mds/SessionMap.h +++ b/src/mds/SessionMap.h @@ -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; } diff --git a/src/mds/SimpleLock.h b/src/mds/SimpleLock.h index e5ecf1342d6..4db35a45802 100644 --- a/src/mds/SimpleLock.h +++ b/src/mds/SimpleLock.h @@ -24,25 +24,6 @@ // -- 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 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 diff --git a/src/mds/events/EFragment.h b/src/mds/events/EFragment.h index 483c4b49a6b..90d9238b030 100644 --- a/src/mds/events/EFragment.h +++ b/src/mds/events/EFragment.h @@ -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"; diff --git a/src/mds/events/ESlaveUpdate.h b/src/mds/events/ESlaveUpdate.h index 193f4a08409..23ca430bc1c 100644 --- a/src/mds/events/ESlaveUpdate.h +++ b/src/mds/events/ESlaveUpdate.h @@ -15,6 +15,8 @@ #ifndef CEPH_MDS_ESLAVEUPDATE_H #define CEPH_MDS_ESLAVEUPDATE_H +#include + #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), diff --git a/src/mds/events/EUpdate.h b/src/mds/events/EUpdate.h index 9984070597d..dc710d5210f 100644 --- a/src/mds/events/EUpdate.h +++ b/src/mds/events/EUpdate.h @@ -15,6 +15,8 @@ #ifndef CEPH_MDS_EUPDATE_H #define CEPH_MDS_EUPDATE_H +#include + #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) { } diff --git a/src/mds/locks.h b/src/mds/locks.h index 252cf0ed524..5199326723e 100644 --- a/src/mds/locks.h +++ b/src/mds/locks.h @@ -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 diff --git a/src/mds/mds_table_types.h b/src/mds/mds_table_types.h index bd7ad47d59c..bfb2baa954c 100644 --- a/src/mds/mds_table_types.h +++ b/src/mds/mds_table_types.h @@ -17,16 +17,18 @@ // MDS TABLES +#include + 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(); } } diff --git a/src/mds/mdstypes.h b/src/mds/mdstypes.h index 12a6ab4165a..20387fa6ab7 100644 --- a/src/mds/mdstypes.h +++ b/src/mds/mdstypes.h @@ -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); diff --git a/src/messages/MLock.h b/src/messages/MLock.h index 12811e2f72d..be126582268 100644 --- a/src/messages/MLock.h +++ b/src/messages/MLock.h @@ -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 << ")"; } -- 2.39.5