return out << ceph_clock_now() << " mds." << dir->mdcache->mds->get_nodeid() << ".cache.den(" << dir->ino() << " " << name << ") ";
}
-LockType CDentry::lock_type(CEPH_LOCK_DN);
-LockType CDentry::versionlock_type(CEPH_LOCK_DVERSION);
+const LockType CDentry::lock_type(CEPH_LOCK_DN);
+const LockType CDentry::versionlock_type(CEPH_LOCK_DVERSION);
// CDentry
elist<CDentry*>::item item_stray;
// lock
- static LockType lock_type;
- static LockType versionlock_type;
+ static const LockType lock_type;
+ static const LockType versionlock_type;
SimpleLock lock; // FIXME referenced containers not in mempool
LocalLockC versionlock; // FIXME referenced containers not in mempool
sr_t* const CInode::projected_inode::UNDEF_SRNODE = (sr_t*)(unsigned long)-1;
-LockType CInode::versionlock_type(CEPH_LOCK_IVERSION);
-LockType CInode::authlock_type(CEPH_LOCK_IAUTH);
-LockType CInode::linklock_type(CEPH_LOCK_ILINK);
-LockType CInode::dirfragtreelock_type(CEPH_LOCK_IDFT);
-LockType CInode::filelock_type(CEPH_LOCK_IFILE);
-LockType CInode::xattrlock_type(CEPH_LOCK_IXATTR);
-LockType CInode::snaplock_type(CEPH_LOCK_ISNAP);
-LockType CInode::nestlock_type(CEPH_LOCK_INEST);
-LockType CInode::flocklock_type(CEPH_LOCK_IFLOCK);
-LockType CInode::policylock_type(CEPH_LOCK_IPOLICY);
+const LockType CInode::quiescelock_type(CEPH_LOCK_IQUIESCE);
+const LockType CInode::versionlock_type(CEPH_LOCK_IVERSION);
+const LockType CInode::authlock_type(CEPH_LOCK_IAUTH);
+const LockType CInode::linklock_type(CEPH_LOCK_ILINK);
+const LockType CInode::dirfragtreelock_type(CEPH_LOCK_IDFT);
+const LockType CInode::filelock_type(CEPH_LOCK_IFILE);
+const LockType CInode::xattrlock_type(CEPH_LOCK_IXATTR);
+const LockType CInode::snaplock_type(CEPH_LOCK_ISNAP);
+const LockType CInode::nestlock_type(CEPH_LOCK_INEST);
+const LockType CInode::flocklock_type(CEPH_LOCK_IFLOCK);
+const LockType CInode::policylock_type(CEPH_LOCK_IPOLICY);
std::string_view CInode::pin_name(int p) const
{
elist<CInode*>::item item_pop_lru;
// -- locks --
- static LockType versionlock_type;
- static LockType authlock_type;
- static LockType linklock_type;
- static LockType dirfragtreelock_type;
- static LockType filelock_type;
- static LockType xattrlock_type;
- static LockType snaplock_type;
- static LockType nestlock_type;
- static LockType flocklock_type;
- static LockType policylock_type;
+ static const LockType versionlock_type;
+ static const LockType authlock_type;
+ static const LockType linklock_type;
+ static const LockType dirfragtreelock_type;
+ static const LockType filelock_type;
+ static const LockType xattrlock_type;
+ static const LockType snaplock_type;
+ static const LockType nestlock_type;
+ static const LockType flocklock_type;
+ static const LockType policylock_type;
// FIXME not part of mempool
LocalLockC versionlock;
class LocalLockC : public SimpleLock {
public:
- LocalLockC(MDSCacheObject *o, LockType *t) :
+ LocalLockC(MDSCacheObject *o, const LockType *t) :
SimpleLock(o, t) {
set_state(LOCK_LOCK); // always.
}
class ScatterLock : public SimpleLock {
public:
- ScatterLock(MDSCacheObject *o, LockType *lt) :
+ ScatterLock(MDSCacheObject *o, const LockType *lt) :
SimpleLock(o, lt) {}
~ScatterLock() override {
ceph_assert(!_more);
}
}
- SimpleLock(MDSCacheObject *o, LockType *lt) :
+ SimpleLock(MDSCacheObject *o, const LockType *lt) :
type(lt),
parent(o)
{}
out << ")";
}
- LockType *type;
+ const LockType *type;
protected:
// parent (what i lock)