Trivial refactor.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
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";
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";
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);
}
};
-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);
}
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;
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;
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";
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);
}
}
- 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;
}
};
-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);
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);
#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
#define CEPH_MDSCACHEOBJECT_H
#include <ostream>
+#include <string_view>
#include "common/config.h"
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";
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();
}
}
#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; }
{
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);
}
public:
MDSRank *mds;
protected:
- const char *table_name;
+ std::string table_name;
bool per_mds;
mds_rank_t rank;
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) {}
#include <map>
#include <list>
#include <set>
+#include <string_view>
class MDSRank;
class CDir;
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";
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();
}
}
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";
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();
}
}
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";
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; }
// -- 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;
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";
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
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";
#ifndef CEPH_MDS_ESLAVEUPDATE_H
#define CEPH_MDS_ESLAVEUPDATE_H
+#include <string_view>
+
#include "../LogEvent.h"
#include "EMetaBlob.h"
__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),
#ifndef CEPH_MDS_EUPDATE_H
#define CEPH_MDS_EUPDATE_H
+#include <string_view>
+
#include "../LogEvent.h"
#include "EMetaBlob.h"
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) { }
#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
// 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();
}
}
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";
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();
}
}
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();
}
}
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);
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
<< ")";
}