#include <string_view>
#include "common/ref.h"
+#include "include/mempool.h"
#include "include/types.h"
-#include "CInode.h"
#include "MDSContext.h"
+#include "mdstypes.h" // for xattr_map
#include "Mutation.h"
#include "SimpleLock.h"
struct LeaseStat;
struct SnapRealm;
+class CInode;
class MClientCaps;
class MClientCapRelease;
class MClientLease;
class ScatterLock;
class LocalLockC;
+template<template<typename> class Allocator> struct inode_t;
+using mempool_inode = inode_t<mempool::mds_co::pool_allocator>;
+using inode_const_ptr = std::shared_ptr<const mempool_inode>;
+using mempool_xattr_map = xattr_map<mempool::mds_co::pool_allocator>; // FIXME bufferptr not in mempool
+
class Locker {
public:
Locker(MDSRank *m, MDCache *c);
bool _need_flush_mdlog(CInode *in, int wanted_caps, bool lock_state_any=false);
void adjust_cap_wanted(Capability *cap, int wanted, int issue_seq);
void handle_client_caps(const cref_t<MClientCaps> &m);
- void _update_cap_fields(CInode *in, int dirty, const cref_t<MClientCaps> &m, CInode::mempool_inode *pi);
+ void _update_cap_fields(CInode *in, int dirty, const cref_t<MClientCaps> &m, mempool_inode *pi);
void _do_snap_update(CInode *in, snapid_t snap, int dirty, snapid_t follows, client_t client, const cref_t<MClientCaps> &m, const ref_t<MClientCaps> &ack);
void _do_null_snapflush(CInode *head_in, client_t client, snapid_t last=CEPH_NOSNAP);
bool _do_cap_update(CInode *in, Capability *cap, int dirty, snapid_t follows, const cref_t<MClientCaps> &m,
void handle_quiesce_failure(const MDRequestRef& mdr, std::string_view& marker);
- uint64_t calc_new_max_size(const CInode::inode_const_ptr& pi, uint64_t size);
- __u32 get_xattr_total_length(CInode::mempool_xattr_map &xattr);
- void decode_new_xattrs(CInode::mempool_inode *inode,
- CInode::mempool_xattr_map *px,
+ uint64_t calc_new_max_size(const inode_const_ptr& pi, uint64_t size);
+ __u32 get_xattr_total_length(mempool_xattr_map &xattr);
+ void decode_new_xattrs(mempool_inode *inode,
+ mempool_xattr_map *px,
const cref_t<MClientCaps> &m);
MDSRank *mds;