Motr  M0
ctg_store.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2016-2020 Seagate Technology LLC and/or its Affiliates
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * For any questions about this software or licensing,
18  * please email opensource@seagate.com or cortx-questions@seagate.com.
19  *
20  */
21 
22 
23 #pragma once
24 
25 #ifndef __MOTR_CAS_CTG_STORE_H__
26 #define __MOTR_CAS_CTG_STORE_H__
27 
28 #include "fop/fom_generic.h"
29 #include "fop/fom_long_lock.h"
30 #include "be/op.h"
31 #include "be/btree.h"
32 #include "be/btree_xc.h"
33 #include "be/tx_credit.h"
34 #include "format/format.h"
35 #include "cas/cas.h"
36 #include "motr/setup.h"
37 
94 struct m0_cas_ctg {
97  /*
98  * m0_be_btree has it's own volatile-only fields, so it can't be placed
99  * before the m0_format_footer, where only persistent fields allowed
100  */
107  /*
108  * Indicates whether catalogue is initialised after its fetch from BE
109  * segment. Non-meta catalogue is initialised on its first lookup in
110  * meta.
111  */
112  bool cc_inited;
113 } M0_XCA_RECORD M0_XCA_DOMAIN(be);
117 
118  /*
119  * CAS with versioned key-value pair feature.
120  * There is no backward compatibility with ver1 at the moment.
121  */
123  /*M0_CAS_CTG_FORMAT_VERSION_3,*/
124  /*M0_CAS_CTG_FORMAT_VERSION_4,*/
128 };
129 
133  /* future versions, uncomment and update M0_CAS_STATE_FORMAT_VERSION */
134  /*M0_CAS_STATE_FORMAT_VERSION_2,*/
135  /*M0_CAS_STATE_FORMAT_VERSION_3,*/
136 
139 };
140 
141 enum {
146  M0_CAS_CTG_VAL_HDR_SIZE = sizeof(uint64_t) + sizeof(uint64_t),
150  M0_CAS_CTG_KEY_HDR_SIZE = sizeof(uint64_t),
151 };
152 
154 struct m0_cas_state {
166  uint64_t cs_rec_nr;
173  uint64_t cs_rec_size;
179 } M0_XCA_RECORD M0_XCA_DOMAIN(be);
180 
182 struct m0_ctg_op {
184  struct m0_fom *co_fom;
210  struct m0_buf co_key;
212  struct m0_buf co_val;
217  /* Version of the co_out_val+co_out_key record. */
223  int co_ct;
225  uint32_t co_flags;
227  int co_rc;
239 };
240 
241 #define CTG_OP_COMBINE(opc, ct) (((uint64_t)(opc)) | ((ct) << 16))
242 
267 M0_INTERNAL int m0_ctg_store_init(struct m0_be_domain *dom);
268 
276 M0_INTERNAL void m0_ctg_store_fini(void);
277 
279 M0_INTERNAL struct m0_cas_ctg *m0_ctg_meta(void);
280 
282 M0_INTERNAL struct m0_cas_ctg *m0_ctg_dead_index(void);
283 
285 M0_INTERNAL struct m0_cas_ctg *m0_ctg_ctidx(void);
286 
297 M0_INTERNAL void m0_ctg_op_init (struct m0_ctg_op *ctg_op,
298  struct m0_fom *fom,
299  uint32_t flags);
300 
308 M0_INTERNAL int m0_ctg_op_rc (struct m0_ctg_op *ctg_op);
309 
315 M0_INTERNAL void m0_ctg_op_fini (struct m0_ctg_op *ctg_op);
316 
327 M0_INTERNAL int m0_ctg_meta_insert(struct m0_ctg_op *ctg_op,
328  const struct m0_fid *fid,
329  int next_phase);
330 
341 M0_INTERNAL int m0_ctg_gc_wait(struct m0_ctg_op *ctg_op,
342  int next_phase);
343 
352 M0_INTERNAL int m0_ctg_dead_index_insert(struct m0_ctg_op *ctg_op,
353  struct m0_cas_ctg *ctg,
354  int next_phase);
355 
365 M0_INTERNAL int m0_ctg_meta_lookup(struct m0_ctg_op *ctg_op,
366  const struct m0_fid *fid,
367  int next_phase);
368 
370 M0_INTERNAL
371 struct m0_cas_ctg *m0_ctg_meta_lookup_result(struct m0_ctg_op *ctg_op);
372 
382 M0_INTERNAL int m0_ctg_meta_delete(struct m0_ctg_op *ctg_op,
383  const struct m0_fid *fid,
384  int next_phase);
385 
400 M0_INTERNAL int m0_ctg_insert(struct m0_ctg_op *ctg_op,
401  struct m0_cas_ctg *ctg,
402  const struct m0_buf *key,
403  const struct m0_buf *val,
404  int next_phase);
405 
421 M0_INTERNAL int m0_ctg_lookup_delete(struct m0_ctg_op *ctg_op,
422  struct m0_cas_ctg *ctg,
423  const struct m0_buf *key,
424  struct m0_buf *val,
425  int flags,
426  int next_phase);
427 
440 M0_INTERNAL int m0_ctg_delete(struct m0_ctg_op *ctg_op,
441  struct m0_cas_ctg *ctg,
442  const struct m0_buf *key,
443  int next_phase);
444 
457 M0_INTERNAL int m0_ctg_lookup(struct m0_ctg_op *ctg_op,
458  struct m0_cas_ctg *ctg,
459  const struct m0_buf *key,
460  int next_phase);
461 
469 M0_INTERNAL void m0_ctg_lookup_result(struct m0_ctg_op *ctg_op,
470  struct m0_buf *buf);
471 
475 M0_INTERNAL void m0_ctg_op_get_ver(struct m0_ctg_op *ctg_op,
476  struct m0_crv *out);
477 
489 M0_INTERNAL int m0_ctg_minkey(struct m0_ctg_op *ctg_op,
490  struct m0_cas_ctg *ctg,
491  int next_phase);
502 M0_INTERNAL int m0_ctg_truncate(struct m0_ctg_op *ctg_op,
503  struct m0_cas_ctg *ctg,
504  m0_bcount_t limit,
505  int next_phase);
506 
510 M0_INTERNAL int m0_ctg_drop(struct m0_ctg_op *ctg_op,
511  struct m0_cas_ctg *ctg,
512  int next_phase);
513 
521 M0_INTERNAL void m0_ctg_meta_cursor_init(struct m0_ctg_op *ctg_op);
522 
533 M0_INTERNAL int m0_ctg_meta_cursor_get(struct m0_ctg_op *ctg_op,
534  const struct m0_fid *fid,
535  int next_phase);
536 
543 M0_INTERNAL int m0_ctg_meta_cursor_next(struct m0_ctg_op *ctg_op,
544  int next_phase);
545 
554 M0_INTERNAL void m0_ctg_cursor_init(struct m0_ctg_op *ctg_op,
555  struct m0_cas_ctg *ctg);
556 
565 M0_INTERNAL bool m0_ctg_cursor_is_initialised(struct m0_ctg_op *ctg_op);
566 
577 M0_INTERNAL int m0_ctg_cursor_get(struct m0_ctg_op *ctg_op,
578  const struct m0_buf *key,
579  int next_phase);
580 
587 M0_INTERNAL int m0_ctg_cursor_next(struct m0_ctg_op *ctg_op,
588  int next_phase);
589 
598 M0_INTERNAL void m0_ctg_cursor_kv_get(struct m0_ctg_op *ctg_op,
599  struct m0_buf *key,
600  struct m0_buf *val);
601 
609 M0_INTERNAL void m0_ctg_cursor_put(struct m0_ctg_op *ctg_op);
610 
616 M0_INTERNAL void m0_ctg_cursor_fini(struct m0_ctg_op *ctg_op);
617 
626 M0_INTERNAL void m0_ctg_insert_credit(struct m0_cas_ctg *ctg,
627  m0_bcount_t knob,
628  m0_bcount_t vnob,
629  struct m0_be_tx_credit *accum);
630 
639 M0_INTERNAL void m0_ctg_delete_credit(struct m0_cas_ctg *ctg,
640  m0_bcount_t knob,
641  m0_bcount_t vnob,
642  struct m0_be_tx_credit *accum);
643 
649 M0_INTERNAL void m0_ctg_ctidx_insert_credits(struct m0_cas_id *cid,
650  struct m0_be_tx_credit *accum);
651 
660 M0_INTERNAL void m0_ctg_drop_credit(struct m0_fom *fom,
661  struct m0_be_tx_credit *accum,
662  struct m0_cas_ctg *ctg,
663  m0_bcount_t *limit);
664 
665 M0_INTERNAL void m0_ctg_try_init(struct m0_cas_ctg *ctg);
666 
672 M0_INTERNAL void m0_ctg_fini(struct m0_fom *fom0,
673  struct m0_cas_ctg *ctg);
674 
678 M0_INTERNAL void m0_ctg_mark_deleted_credit(struct m0_be_tx_credit *accum);
679 
684 M0_INTERNAL void m0_ctg_create_credit(struct m0_be_tx_credit *accum);
685 
690 M0_INTERNAL void m0_ctg_dead_clean_credit(struct m0_be_tx_credit *accum);
691 
697 M0_INTERNAL void m0_ctg_ctidx_delete_credits(struct m0_cas_id *cid,
698  struct m0_be_tx_credit *accum);
699 
708 M0_INTERNAL int m0_ctg_ctidx_insert_sync(const struct m0_cas_id *cid,
709  struct m0_be_tx *tx);
710 
719 M0_INTERNAL int m0_ctg_ctidx_delete_sync(const struct m0_cas_id *cid,
720  struct m0_be_tx *tx);
721 
731 M0_INTERNAL int m0_ctg_ctidx_lookup_sync(const struct m0_fid *fid,
732  struct m0_dix_layout **layout);
733 
734 M0_INTERNAL int m0_ctg_mem_place(struct m0_ctg_op *ctg_op,
735  const struct m0_buf *buf,
736  int next_phase);
737 M0_INTERNAL void m0_ctg_mem_place_get(struct m0_ctg_op *ctg_op,
738  struct m0_buf *buf);
739 M0_INTERNAL int m0_ctg_mem_free(struct m0_ctg_op *ctg_op,
740  void *area,
741  int next_phase);
742 
746 M0_INTERNAL uint64_t m0_ctg_rec_nr(void);
747 
751 M0_INTERNAL uint64_t m0_ctg_rec_size(void);
752 
774 M0_INTERNAL struct m0_long_lock *m0_ctg_del_lock(void);
775 
780 M0_INTERNAL struct m0_long_lock *m0_ctg_lock(struct m0_cas_ctg *ctg);
781 
785 M0_INTERNAL int m0_ctg_create(struct m0_be_seg *seg, struct m0_be_tx *tx,
786  struct m0_cas_ctg **out,
787  const struct m0_fid *cas_fid);
788 
792 M0_INTERNAL int m0_ctg__meta_insert(struct m0_be_btree *meta,
793  const struct m0_fid *fid,
794  struct m0_cas_ctg *ctg,
795  struct m0_be_tx *tx);
796 
800 M0_INTERNAL int m0_ctg_meta_find_ctg(struct m0_cas_ctg *meta,
801  const struct m0_fid *ctg_fid,
802  struct m0_cas_ctg **ctg);
803 
805 M0_INTERNAL const struct m0_be_btree_kv_ops *m0_ctg_btree_ops(void);
806 
808 M0_INTERNAL void m0_ctg_state_inc_update(struct m0_be_tx *tx, uint64_t size);
809 
810 M0_INTERNAL int ctgdump(struct m0_motr *motr_ctx, char *fidstr,
811  char *dump_in_hex_str);
812 
814 #endif /* __MOTR_CAS_CTG_STORE_H__ */
815 
816 /*
817  * Local variables:
818  * c-indentation-style: "K&R"
819  * c-basic-offset: 8
820  * tab-width: 8
821  * fill-column: 80
822  * scroll-step: 1
823  * End:
824  */
825 /*
826  * vim: tabstop=8 shiftwidth=8 noexpandtab textwidth=80 nowrap
827  */
struct m0_be_long_lock cc_lock
Definition: ctg_store.h:102
struct m0_format_header cs_header
Definition: ctg_store.h:155
M0_INTERNAL void m0_ctg_ctidx_insert_credits(struct m0_cas_id *cid, struct m0_be_tx_credit *accum)
Definition: ctg_store.c:1962
M0_INTERNAL void m0_ctg_delete_credit(struct m0_cas_ctg *ctg, m0_bcount_t knob, m0_bcount_t vnob, struct m0_be_tx_credit *accum)
Definition: ctg_store.c:1913
struct m0_be_mutex cs_ctg_init_mutex
Definition: ctg_store.h:178
M0_INTERNAL int m0_ctg_meta_insert(struct m0_ctg_op *ctg_op, const struct m0_fid *fid, int next_phase)
Definition: ctg_store.c:1336
enum m0_cas_ctg_format_version M0_XCA_DOMAIN
struct m0_buf co_out_val
Definition: ctg_store.h:216
M0_INTERNAL int m0_ctg_dead_index_insert(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg, int next_phase)
Definition: ctg_store.c:1405
int const char const void size_t int flags
Definition: dir.c:328
M0_INTERNAL int m0_ctg_delete(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg, const struct m0_buf *key, int next_phase)
Definition: ctg_store.c:1540
M0_INTERNAL int m0_ctg_lookup_delete(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg, const struct m0_buf *key, struct m0_buf *val, int flags, int next_phase)
Definition: ctg_store.c:1465
Definition: idx_mock.c:52
M0_INTERNAL void m0_ctg_lookup_result(struct m0_ctg_op *ctg_op, struct m0_buf *buf)
Definition: ctg_store.c:1570
M0_INTERNAL int m0_ctg_gc_wait(struct m0_ctg_op *ctg_op, int next_phase)
Definition: ctg_store.c:1349
uint64_t cs_rec_size
Definition: ctg_store.h:173
M0_INTERNAL struct m0_long_lock * m0_ctg_lock(struct m0_cas_ctg *ctg)
Definition: ctg_store.c:2162
M0_INTERNAL void m0_ctg_store_fini(void)
Definition: ctg_store.c:870
M0_INTERNAL void m0_ctg_mem_place_get(struct m0_ctg_op *ctg_op, struct m0_buf *buf)
Definition: ctg_store.c:2105
M0_INTERNAL int m0_ctg_meta_cursor_next(struct m0_ctg_op *ctg_op, int next_phase)
Definition: ctg_store.c:1694
M0_INTERNAL void m0_ctg_fini(struct m0_fom *fom0, struct m0_cas_ctg *ctg)
Definition: ctg_store.c:479
M0_INTERNAL uint64_t m0_ctg_rec_nr(void)
Definition: ctg_store.c:2145
struct m0_cas_ctg * cs_meta
Definition: ctg_store.h:161
M0_INTERNAL void m0_ctg_dead_clean_credit(struct m0_be_tx_credit *accum)
Definition: ctg_store.c:1887
M0_INTERNAL int m0_ctg_lookup(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg, const struct m0_buf *key, int next_phase)
Definition: ctg_store.c:1555
struct m0_fom * co_fom
Definition: ctg_store.h:184
M0_INTERNAL int m0_ctg_ctidx_lookup_sync(const struct m0_fid *fid, struct m0_dix_layout **layout)
Definition: ctg_store.c:1980
M0_INTERNAL int m0_ctg_minkey(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg, int next_phase)
Definition: ctg_store.c:1593
uint64_t m0_bcount_t
Definition: types.h:77
M0_INTERNAL struct m0_cas_ctg * m0_ctg_dead_index(void)
Definition: ctg_store.c:2140
M0_INTERNAL int m0_ctg_cursor_get(struct m0_ctg_op *ctg_op, const struct m0_buf *key, int next_phase)
Definition: ctg_store.c:1660
m0_bcount_t co_cnt
Definition: ctg_store.h:232
M0_INTERNAL void m0_ctg_insert_credit(struct m0_cas_ctg *ctg, m0_bcount_t knob, m0_bcount_t vnob, struct m0_be_tx_credit *accum)
Definition: ctg_store.c:1905
struct m0_be_btree cc_tree
Definition: ctg_store.h:101
Definition: sock.c:887
static const struct m0_fid * cas_fid(const struct m0_fom *fom)
Definition: service.c:1749
struct m0_fid fid
Definition: di.c:46
M0_INTERNAL bool m0_ctg_cursor_is_initialised(struct m0_ctg_op *ctg_op)
Definition: ctg_store.c:1633
m0_cas_ctg_format_version
Definition: ctg_store.h:115
M0_INTERNAL int m0_ctg_mem_free(struct m0_ctg_op *ctg_op, void *area, int next_phase)
Definition: ctg_store.c:2117
Definition: buf.h:37
M0_INTERNAL int m0_ctg_insert(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg, const struct m0_buf *key, const struct m0_buf *val, int next_phase)
Definition: ctg_store.c:1448
struct m0_format_footer cs_footer
Definition: ctg_store.h:174
struct m0_buf co_val
Definition: ctg_store.h:212
M0_INTERNAL int m0_ctg_cursor_next(struct m0_ctg_op *ctg_op, int next_phase)
Definition: ctg_store.c:1680
M0_INTERNAL int m0_ctg_meta_lookup(struct m0_ctg_op *ctg_op, const struct m0_fid *fid, int next_phase)
Definition: ctg_store.c:1362
M0_INTERNAL void m0_ctg_cursor_fini(struct m0_ctg_op *ctg_op)
Definition: ctg_store.c:1749
struct m0_crv co_out_ver
Definition: ctg_store.h:218
m0_cas_state_format_version
Definition: ctg_store.h:130
M0_INTERNAL void m0_ctg_try_init(struct m0_cas_ctg *ctg)
Definition: ctg_store.c:953
struct m0_be_mutex cc_chan_guard
Definition: ctg_store.h:106
int co_ct
Definition: ctg_store.h:223
M0_INTERNAL const struct m0_be_btree_kv_ops * m0_ctg_btree_ops(void)
Definition: ctg_store.c:2167
M0_INTERNAL void m0_ctg_cursor_put(struct m0_ctg_op *ctg_op)
Definition: ctg_store.c:1744
M0_INTERNAL int m0_ctg_mem_place(struct m0_ctg_op *ctg_op, const struct m0_buf *buf, int next_phase)
Definition: ctg_store.c:2090
struct m0_be_op co_beop
Definition: ctg_store.h:194
M0_INTERNAL struct m0_cas_ctg * m0_ctg_meta(void)
Definition: ctg_store.c:2130
Definition: cas.h:157
bool cc_inited
Definition: ctg_store.h:112
struct m0_be_chan cc_chan
Definition: ctg_store.h:104
struct m0_clink co_clink
Definition: ctg_store.h:204
M0_INTERNAL int m0_ctg_store_init(struct m0_be_domain *dom)
Definition: ctg_store.c:814
static struct m0_stob_domain * dom
Definition: storage.c:38
M0_INTERNAL void m0_ctg_mark_deleted_credit(struct m0_be_tx_credit *accum)
Definition: ctg_store.c:1805
M0_INTERNAL int m0_ctg__meta_insert(struct m0_be_btree *meta, const struct m0_fid *fid, struct m0_cas_ctg *ctg, struct m0_be_tx *tx)
Definition: ctg_store.c:528
int co_rc
Definition: ctg_store.h:227
M0_INTERNAL void m0_ctg_create_credit(struct m0_be_tx_credit *accum)
Definition: ctg_store.c:1823
struct m0_be_btree_anchor co_anchor
Definition: ctg_store.h:196
M0_INTERNAL uint64_t m0_ctg_rec_size(void)
Definition: ctg_store.c:2151
M0_INTERNAL void m0_ctg_meta_cursor_init(struct m0_ctg_op *ctg_op)
Definition: ctg_store.c:1722
Definition: dump.c:103
Definition: chan.h:229
M0_INTERNAL int m0_ctg_meta_find_ctg(struct m0_cas_ctg *meta, const struct m0_fid *ctg_fid, struct m0_cas_ctg **ctg)
Definition: ctg_store.c:503
M0_INTERNAL void m0_ctg_cursor_init(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg)
Definition: ctg_store.c:1640
M0_INTERNAL void m0_ctg_op_get_ver(struct m0_ctg_op *ctg_op, struct m0_crv *out)
Definition: ctg_store.c:1582
struct m0_be_btree_cursor co_cur
Definition: ctg_store.h:198
M0_INTERNAL int m0_ctg_create(struct m0_be_seg *seg, struct m0_be_tx *tx, struct m0_cas_ctg **out, const struct m0_fid *cas_fid)
Definition: ctg_store.c:441
Definition: seg.h:66
M0_INTERNAL void m0_ctg_op_init(struct m0_ctg_op *ctg_op, struct m0_fom *fom, uint32_t flags)
Definition: ctg_store.c:1759
struct m0_cas_ctg * co_ctg
Definition: ctg_store.h:186
Definition: fom.h:481
M0_INTERNAL int m0_ctg_ctidx_delete_sync(const struct m0_cas_id *cid, struct m0_be_tx *tx)
Definition: ctg_store.c:2060
struct m0_buf co_out_key
Definition: ctg_store.h:214
Definition: setup.h:354
M0_INTERNAL void m0_ctg_state_inc_update(struct m0_be_tx *tx, uint64_t size)
Definition: ctg_store.c:940
M0_INTERNAL void m0_ctg_cursor_kv_get(struct m0_ctg_op *ctg_op, struct m0_buf *key, struct m0_buf *val)
Definition: ctg_store.c:1708
struct m0_format_footer cc_foot
Definition: ctg_store.h:96
Definition: fid.h:38
M0_INTERNAL int m0_ctg_ctidx_insert_sync(const struct m0_cas_id *cid, struct m0_be_tx *tx)
Definition: ctg_store.c:2010
M0_INTERNAL void m0_ctg_ctidx_delete_credits(struct m0_cas_id *cid, struct m0_be_tx_credit *accum)
Definition: ctg_store.c:1971
m0_bcount_t size
Definition: di.c:39
M0_INTERNAL int m0_ctg_meta_delete(struct m0_ctg_op *ctg_op, const struct m0_fid *fid, int next_phase)
Definition: ctg_store.c:1392
M0_INTERNAL int ctgdump(struct m0_motr *motr_ctx, char *fidstr, char *dump_in_hex_str)
Definition: ctg_store.c:2235
struct m0_buf co_mem_buf
Definition: ctg_store.h:219
M0_INTERNAL struct m0_cas_ctg * m0_ctg_ctidx(void)
Definition: ctg_store.c:2135
static struct m0_be_seg * seg
Definition: btree.c:40
M0_INTERNAL void m0_ctg_op_fini(struct m0_ctg_op *ctg_op)
Definition: ctg_store.c:1788
struct m0_mutex co_channel_lock
Definition: ctg_store.h:208
bool co_cur_initialised
Definition: ctg_store.h:200
bool co_is_versioned
Definition: ctg_store.h:238
#define out(...)
Definition: gen.c:41
M0_INTERNAL int m0_ctg_drop(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg, int next_phase)
Definition: ctg_store.c:1620
int co_cur_phase
Definition: ctg_store.h:202
struct m0_chan co_channel
Definition: ctg_store.h:206
Definition: op.h:74
struct m0_format_header cc_head
Definition: ctg_store.h:95
Definition: mutex.h:47
Definition: cas.h:107
uint32_t co_flags
Definition: ctg_store.h:225
M0_INTERNAL int m0_ctg_meta_cursor_get(struct m0_ctg_op *ctg_op, const struct m0_fid *fid, int next_phase)
Definition: ctg_store.c:1729
static struct m0_be_ut_backend be
Definition: service_ut.c:59
M0_INTERNAL int m0_ctg_truncate(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg, m0_bcount_t limit, int next_phase)
Definition: ctg_store.c:1606
M0_INTERNAL int m0_ctg_op_rc(struct m0_ctg_op *ctg_op)
Definition: ctg_store.c:1779
uint64_t cs_rec_nr
Definition: ctg_store.h:166
M0_INTERNAL struct m0_long_lock * m0_ctg_del_lock(void)
Definition: ctg_store.c:2157
int co_opcode
Definition: ctg_store.h:221
M0_INTERNAL void m0_ctg_drop_credit(struct m0_fom *fom, struct m0_be_tx_credit *accum, struct m0_cas_ctg *ctg, m0_bcount_t *limit)
Definition: ctg_store.c:1841
Definition: tx.h:280
Definition: idx_mock.c:47
M0_INTERNAL struct m0_cas_ctg * m0_ctg_meta_lookup_result(struct m0_ctg_op *ctg_op)
Definition: ctg_store.c:1377
struct m0_buf co_key
Definition: ctg_store.h:210