2525#include " include/Context.h" // for C_GatherBase
2626#include " include/mempool.h"
2727
28- #include " CInode.h"
29-
3028#ifdef WITH_CRIMSON
3129#include " crimson/common/perf_counters_collection.h"
3230#else
4341
4442using namespace std ::literals::string_view_literals;
4543
44+ class CDentry ;
45+ class CDir ;
46+ class CInode ;
4647class OSDMap ;
4748class LogEvent ;
4849class EMetaBlob ;
@@ -68,6 +69,13 @@ class MLock;
6869class MMDSPeerRequest ;
6970class filepath ;
7071
72+ template <template <typename > class Allocator > struct inode_t ;
73+ using mempool_inode = inode_t <mempool::mds_co::pool_allocator>;
74+ using inode_const_ptr = std::shared_ptr<const mempool_inode>;
75+ using mempool_xattr_map = xattr_map<mempool::mds_co::pool_allocator>; // FIXME bufferptr not in mempool
76+ using xattr_map_ptr = std::shared_ptr<mempool_xattr_map>;
77+ using xattr_map_const_ptr = std::shared_ptr<const mempool_xattr_map>;
78+
7179enum {
7280 l_mdss_first = 1000 ,
7381 l_mdss_dispatch_client_request,
@@ -430,15 +438,15 @@ class Server {
430438 // reject xattr request (set or remove), zero to proceed. handlers
431439 // may parse xattr value for verification if needed and have an
432440 // option to store custom data in XattrOp::xinfo.
433- int (Server::*validate)(CInode *cur, const InodeStoreBase:: xattr_map_const_ptr xattrs,
441+ int (Server::*validate)(CInode *cur, const xattr_map_const_ptr xattrs,
434442 XattrOp *xattr_op);
435443
436444 // set xattr for an inode in xattr_map
437- void (Server::*setxattr)(CInode *cur, InodeStoreBase:: xattr_map_ptr xattrs,
445+ void (Server::*setxattr)(CInode *cur, xattr_map_ptr xattrs,
438446 const XattrOp &xattr_op);
439447
440448 // remove xattr for an inode from xattr_map
441- void (Server::*removexattr)(CInode *cur, InodeStoreBase:: xattr_map_ptr xattrs,
449+ void (Server::*removexattr)(CInode *cur, xattr_map_ptr xattrs,
442450 const XattrOp &xattr_op);
443451 };
444452
@@ -448,28 +456,28 @@ class Server {
448456 const XattrHandler* get_xattr_or_default_handler (std::string_view xattr_name);
449457
450458 // generic variant to set/remove xattr in/from xattr_map
451- int xattr_validate (CInode *cur, const InodeStoreBase:: xattr_map_const_ptr xattrs,
459+ int xattr_validate (CInode *cur, const xattr_map_const_ptr xattrs,
452460 const std::string &xattr_name, int op, int flags);
453- void xattr_set (InodeStoreBase:: xattr_map_ptr xattrs, const std::string &xattr_name,
461+ void xattr_set (xattr_map_ptr xattrs, const std::string &xattr_name,
454462 const bufferlist &xattr_value);
455- void xattr_rm (InodeStoreBase:: xattr_map_ptr xattrs, const std::string &xattr_name);
463+ void xattr_rm (xattr_map_ptr xattrs, const std::string &xattr_name);
456464
457465 // default xattr handlers
458- int default_xattr_validate (CInode *cur, const InodeStoreBase:: xattr_map_const_ptr xattrs,
466+ int default_xattr_validate (CInode *cur, const xattr_map_const_ptr xattrs,
459467 XattrOp *xattr_op);
460- void default_setxattr_handler (CInode *cur, InodeStoreBase:: xattr_map_ptr xattrs,
468+ void default_setxattr_handler (CInode *cur, xattr_map_ptr xattrs,
461469 const XattrOp &xattr_op);
462- void default_removexattr_handler (CInode *cur, InodeStoreBase:: xattr_map_ptr xattrs,
470+ void default_removexattr_handler (CInode *cur, xattr_map_ptr xattrs,
463471 const XattrOp &xattr_op);
464472
465473 // mirror info xattr handler
466474 int parse_mirror_info_xattr (const std::string &name, const std::string &value,
467475 std::string &cluster_id, std::string &fs_id);
468- int mirror_info_xattr_validate (CInode *cur, const InodeStoreBase:: xattr_map_const_ptr xattrs,
476+ int mirror_info_xattr_validate (CInode *cur, const xattr_map_const_ptr xattrs,
469477 XattrOp *xattr_op);
470- void mirror_info_setxattr_handler (CInode *cur, InodeStoreBase:: xattr_map_ptr xattrs,
478+ void mirror_info_setxattr_handler (CInode *cur, xattr_map_ptr xattrs,
471479 const XattrOp &xattr_op);
472- void mirror_info_removexattr_handler (CInode *cur, InodeStoreBase:: xattr_map_ptr xattrs,
480+ void mirror_info_removexattr_handler (CInode *cur, xattr_map_ptr xattrs,
473481 const XattrOp &xattr_op);
474482
475483 static bool is_ceph_vxattr (std::string_view xattr_name) {
0 commit comments