+struct thandle* fld_trans_start(struct lu_server_fld *fld,
+ const struct lu_env *env, int credit)
+{
+ struct fld_thread_info *info;
+ struct dt_device *dt_dev;
+ struct txn_param *p;
+
+ dt_dev = lu2dt_dev(fld->lsf_obj->do_lu.lo_dev);
+ info = lu_context_key_get(&env->le_ctx, &fld_thread_key);
+ p = &info->fti_txn_param;
+ txn_param_init(p, credit);
+
+ return dt_dev->dd_ops->dt_trans_start(env, dt_dev, p);
+}
+
+void fld_trans_stop(struct lu_server_fld *fld,
+ const struct lu_env *env, struct thandle* th)
+{
+ struct dt_device *dt_dev;
+
+ dt_dev = lu2dt_dev(fld->lsf_obj->do_lu.lo_dev);
+ dt_dev->dd_ops->dt_trans_stop(env, th);
+}
+
+/**
+ * insert range in fld store.
+ *
+ * \param range range to be inserted
+ * \param th transaction for this operation as it could compound
+ * transaction.
+ *
+ * \retval 0 success
+ * \retval -ve error
+ */
+