94 self->rd_res = &flock->
fi_res;
116 self->rd_owner = owner;
174 void *
addr = &caddr[0];
216 bool validation_lock =
false;
234 validation_lock =
true;
#define M0_BUFVEC_INIT_BUF(addr_ptr, count_ptr)
static void fl_owner_set(struct rm_ut_data *self)
M0_INTERNAL void m0_chan_wait(struct m0_clink *link)
static void fl_datum_set(struct rm_ut_data *self)
static void file_encdec_test(struct rm_ut_data *utdata)
M0_INTERNAL void m0_clink_init(struct m0_clink *link, m0_chan_cb_t cb)
static struct m0_thread srv_thr[SRV_THR_NR]
struct rm_ctx rm_ctxs[SERVER_NR]
M0_INTERNAL void m0_clink_del_lock(struct m0_clink *link)
void creditor_cookie_setup(enum rm_server dsrv_id, enum rm_server csrv_id)
static struct buffer * cur(struct m0_addb2_mach *mach, m0_bcount_t space)
int m0_thread_join(struct m0_thread *q)
const m0_time_t M0_TIME_NEVER
static struct io_request req
static void rm_ctx_init(struct m0_rm_lock_ctx *ctx, struct m0_client *m0c, struct m0_fid *fid)
static void client_dlock_run(void)
struct rm_ut_data rc_test_data
static struct m0_uint128 test_id
bool(* rto_eq)(const struct m0_rm_resource *resource0, const struct m0_rm_resource *resource1)
struct m0_rm_owner * rd_owner
static void fl_owner_unset(struct rm_ut_data *self)
M0_INTERNAL void m0_file_lock(struct m0_rm_owner *owner, struct m0_rm_incoming *req)
struct m0_rm_resource_type * rd_rt
#define M0_THREAD_INIT(thread, TYPE, init, func, arg, namefmt,...)
#define container_of(ptr, type, member)
void flock_srv_utdata_ops_set(struct rm_ut_data *data)
M0_INTERNAL int m0_rm_owner_timedwait(struct m0_rm_owner *owner, uint64_t state, const m0_time_t abs_timeout)
M0_INTERNAL int m0_sm_timedwait(struct m0_sm *mach, uint64_t states, m0_time_t deadline)
static void rm_ctx_fini(struct m0_ref *ref)
static void client_tests(void)
M0_INTERNAL void m0_fid_set(struct m0_fid *fid, uint64_t container, uint64_t key)
struct m0_chan rm_ut_tests_chan
void loan_session_set(enum rm_server csrv_id, enum rm_server dsrv_id)
static enum m0_rm_owner_state owner_state(const struct m0_rm_owner *owner)
static const struct rm_ut_data_ops fl_client_ut_data_ops
const struct m0_uint128 m0_rm_no_group
M0_INTERNAL void m0_chan_init(struct m0_chan *chan, struct m0_mutex *ch_guard)
static void server_lock_test(void)
M0_INTERNAL bool m0_mutex_is_locked(const struct m0_mutex *mutex)
static enum m0_rm_incoming_state incoming_state(const struct m0_rm_incoming *in)
void test_verify(enum flock_tests test_id)
void rm_ctxs_conf_fini(struct rm_ctx *rm_ctxs, int ctxs_nr)
void m0_thread_fini(struct m0_thread *q)
static struct m0_thread clnt_thr[CLNT_THR_NR]
static void fl_res_set(struct rm_ut_data *self)
M0_INTERNAL void m0_bufvec_cursor_init(struct m0_bufvec_cursor *cur, const struct m0_bufvec *bvec)
static struct rectype rt[]
void(* rtype_set)(struct rm_ut_data *self)
M0_INTERNAL void m0_file_owner_init(struct m0_rm_owner *owner, const struct m0_uint128 *grp_id, struct m0_file *file, struct m0_rm_remote *creditor)
enum rm_server debtor_id[SERVER_NR - 1]
static void testcase2_run(void)
M0_INTERNAL void m0_mutex_init(struct m0_mutex *mutex)
static void server_tests(void)
static void flock_utfini(void)
static void clnt_dlock(int n)
static struct m0_sm_group * owner_grp(const struct m0_rm_owner *owner)
static struct m0_clink tests_clink[LOCK_TESTS_NR]
int(* rto_decode)(struct m0_bufvec_cursor *cur, struct m0_rm_resource **resource)
static enum rm_server test_servers_nr
static const struct rm_ut_data_ops fl_srv_ut_data_ops
M0_INTERNAL void m0_rm_resource_free(struct m0_rm_resource *res)
static void srv_dlock_run(void)
static void client_lock_test(void)
M0_INTERNAL void m0_chan_signal_lock(struct m0_chan *chan)
void rm_ctxs_conf_init(struct rm_ctx *rm_ctxs, int ctxs_nr)
void flock_client_utdata_ops_set(struct rm_ut_data *data)
void m0_clink_add_lock(struct m0_chan *chan, struct m0_clink *link)
static void flock_utinit(void)
M0_INTERNAL void m0_file_unlock(struct m0_rm_incoming *req)
int(* rto_encode)(struct m0_bufvec_cursor *cur, const struct m0_rm_resource *resource)
void rm_ctx_server_windup(enum rm_server srv_id)
#define M0_ALLOC_PTR(ptr)
struct m0_rm_resource fi_res
static void srv_dlock(int n)
static void testcase1_run(void)
bool m0_rm_ur_tlist_is_empty(const struct m0_tl *list)
M0_INTERNAL void m0_rm_owner_windup(struct m0_rm_owner *owner)
struct m0_tl ro_owned[OWOS_NR]
enum rm_server creditor_id
M0_INTERNAL void m0_mutex_fini(struct m0_mutex *mutex)
M0_INTERNAL void m0_clink_fini(struct m0_clink *link)
struct m0_rm_incoming rd_in
const struct m0_rm_resource_type_ops * rt_ops
M0_INTERNAL void m0_rm_owner_unlock(struct m0_rm_owner *owner)
M0_INTERNAL int m0_rm_type_register(struct m0_rm_domain *dom, struct m0_rm_resource_type *rt)
static void server_hier_config(void)
M0_INTERNAL void m0_file_fini(struct m0_file *file)
static void fl_rtype_unset(struct rm_ut_data *self)
struct m0_rm_resource * rd_res
M0_INTERNAL void m0_rm_owner_lock(struct m0_rm_owner *owner)
M0_INTERNAL void m0_file_owner_fini(struct m0_rm_owner *owner)
M0_INTERNAL void m0_rm_type_deregister(struct m0_rm_resource_type *rt)
static void fl_rtype_set(struct rm_ut_data *self)
void rm_ctx_server_stop(enum rm_server srv_id)
M0_INTERNAL void m0_chan_fini_lock(struct m0_chan *chan)
const struct m0_rm_resource_type_ops file_lock_type_ops
static void dlock(enum rm_server srv_id, int n)
struct m0_mutex rm_ut_tests_chan_mutex
void rm_ctx_server_start(enum rm_server srv_id)
static void rm_server_start(const int tid)
M0_INTERNAL void m0_file_init(struct m0_file *file, const struct m0_fid *fid, struct m0_rm_domain *dom, enum m0_di_types di_type)
static void wait_lock(enum rm_server srv_id)
static struct net_srv srv
static void fl_res_unset(struct rm_ut_data *self)