]>
git.proxmox.com Git - ceph.git/blob - ceph/src/crimson/osd/osd_meta.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
8 #include <seastar/core/future.hh>
9 #include "osd/osd_types.h"
17 /// metadata shared across PGs, or put in another way,
18 /// metadata not specific to certain PGs.
20 template<typename T
> using Ref
= boost::intrusive_ptr
<T
>;
22 ceph::os::CyanStore
* store
;
23 Ref
<ceph::os::Collection
> coll
;
26 OSDMeta(Ref
<ceph::os::Collection
> coll
,
27 ceph::os::CyanStore
* store
)
28 : store
{store
}, coll
{coll
}
35 void create(ceph::os::Transaction
& t
);
37 void store_map(ceph::os::Transaction
& t
,
38 epoch_t e
, const bufferlist
& m
);
39 seastar::future
<bufferlist
> load_map(epoch_t e
);
41 void store_superblock(ceph::os::Transaction
& t
,
42 const OSDSuperblock
& sb
);
43 seastar::future
<OSDSuperblock
> load_superblock();
45 using ec_profile_t
= std::map
<std::string
, std::string
>;
46 seastar::future
<pg_pool_t
,
48 ec_profile_t
> load_final_pool_info(int64_t pool
);
50 static ghobject_t
osdmap_oid(epoch_t epoch
);
51 static ghobject_t
final_pool_info_oid(int64_t pool
);
52 static ghobject_t
superblock_oid();