25 #ifndef __MOTR_COB_COB_H__ 26 #define __MOTR_COB_COB_H__ 33 #include "lib/bitstring_xc.h" 37 #include "be/btree_xc.h" 352 #define M0_COB_ALL (M0_COB_ATIME | M0_COB_MTIME | M0_COB_CTIME | \ 353 M0_COB_SIZE | M0_COB_MODE | M0_COB_UID | M0_COB_GID | \ 354 M0_COB_BLOCKS | M0_COB_TYPE | M0_COB_FLAGS | M0_COB_NLINK |\ 355 M0_COB_RDEV | M0_COB_BLKSIZE | M0_COB_LID | M0_COB_PVER) 919 const struct m0_fid *pver_fid,
966 uint32_t *out_count);
1038 const struct m0_fid *pfid,
1039 const char *
name,
size_t namelen);
1046 const char *link,
size_t linklen);
struct m0_cob_nsrec co_nsrec
M0_INTERNAL int m0_cob_ea_del(struct m0_cob *cob, struct m0_cob_eakey *eakey, struct m0_be_tx *tx)
M0_INTERNAL int m0_cob_bc_iterator_next(struct m0_cob_bc_iterator *it)
int const char const void size_t int flags
M0_INTERNAL int m0_cob_domain_mkfs(struct m0_cob_domain *dom, const struct m0_fid *rootfid, struct m0_be_tx *tx)
m0_cob_domain_format_version
M0_INTERNAL size_t m0_cob_max_earec_size(void)
struct m0_be_btree cd_object_index
M0_INTERNAL int m0_cob_ea_get(struct m0_cob *cob, struct m0_cob_eakey *eakey, struct m0_cob_earec *out, struct m0_be_tx *tx)
m0_cob_nsrec_format_version
M0_INTERNAL void m0_cob_iterator_fini(struct m0_cob_iterator *it)
M0_INTERNAL int m0_cob_alloc_omgid(struct m0_cob_domain *dom, uint64_t *omgid)
M0_INTERNAL int m0_cob_mod_init(void)
static struct m0_sm_group * grp
M0_INTERNAL int m0_cob_nskey_cmp(const struct m0_cob_nskey *k0, const struct m0_cob_nskey *k1)
struct m0_cob_domain * co_dom
M0_INTERNAL int m0_cob_ea_iterator_next(struct m0_cob_ea_iterator *it)
void m0_cob_domain_fini(struct m0_cob_domain *dom)
const struct m0_fid_type m0_cob_fid_type
M0_INTERNAL void m0_cob_put(struct m0_cob *cob)
static struct m0_be_emap_cursor it
struct m0_format_footer cd_footer
M0_INTERNAL int m0_cob_bc_insert(struct m0_cob *cob, struct m0_cob_bckey *bc_key, struct m0_cob_bcrec *bc_val, struct m0_be_tx *tx)
M0_INTERNAL int m0_cob_domain_credit_add(struct m0_cob_domain *dom, struct m0_be_domain *bedom, struct m0_be_seg *seg, const struct m0_cob_domain_id *cdid, struct m0_be_tx_credit *cred)
int m0_cob_domain_create(struct m0_cob_domain **dom, struct m0_sm_group *grp, const struct m0_cob_domain_id *cdid, struct m0_be_domain *bedom, struct m0_be_seg *seg)
M0_INTERNAL int m0_cob_fabrec_make(struct m0_cob_fabrec **rech, const char *link, size_t linklen)
M0_INTERNAL void m0_cob_bc_iterator_fini(struct m0_cob_bc_iterator *it)
struct m0_be_btree cd_fileattr_basic
struct m0_cob_bckey * ci_key
struct m0_be_btree cd_fileattr_ea
M0_INTERNAL int m0_cob_name_update(struct m0_cob *cob, struct m0_cob_nskey *srckey, struct m0_cob_nskey *tgtkey, struct m0_be_tx *tx)
M0_INTERNAL int m0_cob_size_update(struct m0_cob *cob, uint64_t size, struct m0_be_tx *tx)
M0_INTERNAL void m0_cob_init(struct m0_cob_domain *dom, struct m0_cob *cob)
struct m0_cob_earec * ci_rec
M0_INTERNAL int m0_cob_nskey_make(struct m0_cob_nskey **keyh, const struct m0_fid *pfid, const char *name, size_t namelen)
M0_INTERNAL void m0_cob_tx_credit(struct m0_cob_domain *dom, enum m0_cob_op optype, struct m0_be_tx_credit *accum)
M0_INTERNAL int m0_cob_ea_set(struct m0_cob *cob, struct m0_cob_eakey *eakey, struct m0_cob_earec *earec, struct m0_be_tx *tx)
struct m0_cob_nskey * co_nskey
struct m0_cob_fabrec * co_fabrec
M0_INTERNAL int m0_cob_delete_put(struct m0_cob *cob, struct m0_be_tx *tx)
M0_INTERNAL int m0_cob_bc_update(struct m0_cob *cob, struct m0_cob_bckey *bc_key, struct m0_cob_bcrec *bc_val, struct m0_be_tx *tx)
M0_INTERNAL void m0_cob_ea_del_credit(struct m0_cob *cob, struct m0_cob_eakey *eakey, struct m0_be_tx_credit *accum)
M0_INTERNAL int m0_cob_iterator_next(struct m0_cob_iterator *it)
M0_INTERNAL int m0_cob_ea_iterator_init(struct m0_cob *cob, struct m0_cob_ea_iterator *it, struct m0_bitstring *name)
static void attr(struct m0_addb2__context *ctx, const uint64_t *v, char *buf)
struct m0_bitstring * r_pos
M0_INTERNAL int m0_cob_name_add(struct m0_cob *cob, struct m0_cob_nskey *nskey, struct m0_cob_nsrec *nsrec, struct m0_be_tx *tx)
struct m0_format_header cnr_header
static struct m0_cob * cob
M0_INTERNAL int m0_cob_domain_create_prepared(struct m0_cob_domain **out, struct m0_sm_group *grp, const struct m0_cob_domain_id *cdid, struct m0_be_domain *bedom, struct m0_be_seg *seg, struct m0_be_tx *tx)
struct m0_bitstring cnk_name
struct m0_cob_bcrec * ci_rec
M0_INTERNAL void m0_cob_nsrec_init(struct m0_cob_nsrec *nsrec)
int m0_cob_domain_destroy(struct m0_cob_domain *dom, struct m0_sm_group *grp, struct m0_be_domain *bedom)
M0_INTERNAL void m0_cob_oikey_make(struct m0_cob_oikey *oikey, const struct m0_fid *fid, int linkno)
M0_INTERNAL void m0_cob_mod_fini(void)
enum m0_cob_op M0_XCA_ENUM
static struct m0_stob_domain * dom
M0_INTERNAL int m0_cob_create(struct m0_cob *cob, struct m0_cob_nskey *nskey, struct m0_cob_nsrec *nsrec, struct m0_cob_fabrec *fabrec, struct m0_cob_omgrec *omgrec, struct m0_be_tx *tx)
struct m0_be_rwlock cd_lock
M0_INTERNAL void m0_cob_ea_iterator_fini(struct m0_cob_ea_iterator *it)
struct m0_cob_nskey * ci_key
struct m0_cob_oikey co_oikey
M0_INTERNAL int m0_cob_lookup(struct m0_cob_domain *dom, struct m0_cob_nskey *nskey, uint64_t flags, struct m0_cob **out)
M0_INTERNAL void m0_cob_get(struct m0_cob *cob)
M0_INTERNAL int m0_cob_bc_iterator_init(struct m0_cob *cob, struct m0_cob_bc_iterator *it, const struct m0_fid *pver_fid, uint64_t user_id)
M0_INTERNAL void m0_cob_ea_iterator_init_credit(struct m0_cob *cob, struct m0_cob_ea_iterator *it, struct m0_bitstring *name, struct m0_be_tx_credit *accum)
int m0_cob_domain_init(struct m0_cob_domain *dom, struct m0_be_seg *seg)
enum m0_cob_domain_format_version M0_XCA_DOMAIN
struct m0_format_header cd_header
struct m0_cob_eakey * ci_key
M0_INTERNAL int m0_cob_eakey_make(struct m0_cob_eakey **keyh, const struct m0_fid *fid, const char *name, size_t namelen)
M0_INTERNAL int m0_cob_bc_lookup(struct m0_cob *cob, struct m0_cob_bckey *bc_key, struct m0_cob_bcrec *bc_rec)
M0_INTERNAL void m0_cob_ea_get_credit(struct m0_cob *cob, struct m0_cob_eakey *eakey, struct m0_cob_earec *out, struct m0_be_tx_credit *accum)
struct m0_be_btree_cursor ci_cursor
M0_INTERNAL int m0_cob_bc_iterator_get(struct m0_cob_bc_iterator *it)
struct m0_cob_omgrec co_omgrec
M0_INTERNAL int m0_cob_update(struct m0_cob *cob, struct m0_cob_nsrec *nsrec, struct m0_cob_fabrec *fabrec, struct m0_cob_omgrec *omgrec, struct m0_be_tx *tx)
M0_INTERNAL int m0_cob_delete(struct m0_cob *cob, struct m0_be_tx *tx)
M0_INTERNAL int m0_cob_iterator_get(struct m0_cob_iterator *it)
M0_INTERNAL int m0_cob_locate(struct m0_cob_domain *dom, struct m0_cob_oikey *oikey, uint64_t flags, struct m0_cob **out)
M0_INTERNAL int m0_cob_setattr(struct m0_cob *cob, struct m0_cob_attr *attr, struct m0_be_tx *tx)
static struct m0_be_seg * seg
M0_INTERNAL int m0_cob_name_del(struct m0_cob *cob, struct m0_cob_nskey *nskey, struct m0_be_tx *tx)
M0_INTERNAL void m0_cob_ea_set_credit(struct m0_cob *cob, struct m0_cob_eakey *eakey, struct m0_cob_earec *earec, struct m0_be_tx_credit *accum)
M0_INTERNAL int m0_cob_alloc(struct m0_cob_domain *dom, struct m0_cob **out)
M0_INTERNAL size_t m0_cob_nskey_size(const struct m0_cob_nskey *cnk)
M0_INTERNAL int m0_cob_bc_entries_dump(struct m0_cob_domain *cdom, struct m0_buf **out_keys, struct m0_buf **out_recs, uint32_t *out_count)
struct m0_be_btree cd_fileattr_omg
M0_INTERNAL const struct m0_fid * m0_cob_fid(const struct m0_cob *cob)
struct m0_bitstring * r_end
struct m0_bitstring cek_name
struct m0_be_btree cd_bytecount
M0_INTERNAL int m0_cob_iterator_init(struct m0_cob *cob, struct m0_cob_iterator *it, struct m0_bitstring *name)
struct m0_format_footer cnr_footer
static struct m0_be_ut_backend be
struct m0_cob_domain_id cd_id
M0_INTERNAL int m0_cob_ea_iterator_get(struct m0_cob_ea_iterator *it)
struct m0_be_btree cd_namespace