int fld_index_lookup(struct lu_server_fld *fld, const struct lu_env *env, seqno_t seq, struct lu_seq_range *range) { struct dt_object *dt_obj = fld->lsf_obj; struct lu_seq_range *fld_rec; struct dt_key *key = fld_key(env, seq); struct fld_thread_info *info; int rc; ENTRY; info = lu_context_key_get(&env->le_ctx, &fld_thread_key); fld_rec = &info->fti_rec; rc = dt_obj->do_index_ops->dio_lookup(env, dt_obj, (struct dt_rec*) fld_rec, key, BYPASS_CAPA); if (rc >= 0) { range_be_to_cpu(fld_rec, fld_rec); *range = *fld_rec; if (range_within(range, seq)) rc = 0; else rc = -ENOENT; } CDEBUG(D_INFO, "%s: lookup seq = "LPX64" range : "DRANGE" rc = %d\n", fld->lsf_name, seq, PRANGE(range), rc); RETURN(rc); }
int fld_index_create(struct lu_server_fld *fld, const struct lu_env *env, const struct lu_seq_range *range, struct thandle *th) { struct dt_object *dt_obj = fld->lsf_obj; struct dt_device *dt_dev; seqno_t start; int rc; ENTRY; start = range->lsr_start; LASSERT(range_is_sane(range)); dt_dev = lu2dt_dev(fld->lsf_obj->do_lu.lo_dev); rc = dt_obj->do_index_ops->dio_insert(env, dt_obj, fld_rec(env, range), fld_key(env, start), th, BYPASS_CAPA, 1); CDEBUG(D_INFO, "%s: insert given range : "DRANGE" rc = %d\n", fld->lsf_name, PRANGE(range), rc); RETURN(rc); }
int fld_index_delete(struct lu_server_fld *fld, const struct lu_env *env, struct lu_seq_range *range, struct thandle *th) { struct dt_object *dt_obj = fld->lsf_obj; seqno_t seq = range->lsr_start; int rc; ENTRY; rc = dt_obj->do_index_ops->dio_delete(env, dt_obj, fld_key(env, seq), th, BYPASS_CAPA); CDEBUG(D_INFO, "%s: delete given range : "DRANGE" rc = %d\n", fld->lsf_name, PRANGE(range), rc); RETURN(rc); }
int fld_declare_index_create(struct lu_server_fld *fld, const struct lu_env *env, const struct lu_seq_range *range, struct thandle *th) { struct dt_object *dt_obj = fld->lsf_obj; seqno_t start; int rc; ENTRY; start = range->lsr_start; LASSERT(range_is_sane(range)); rc = dt_obj->do_index_ops->dio_declare_insert(env, dt_obj, fld_rec(env, range), fld_key(env, start), th); RETURN(rc); }