txn.tp_credits = FLD_TXN_INDEX_INSERT_CREDITS;
th = dt->dd_ops->dt_trans_start(ctx, dt, &txn);
-
- rc = dt_obj->do_index_ops->dio_insert(ctx, dt_obj,
- fld_rec(ctx, mds),
- fld_key(ctx, seq), th);
- dt->dd_ops->dt_trans_stop(ctx, th);
-
+ if (!IS_ERR(th)) {
+ rc = dt_obj->do_index_ops->dio_insert(ctx, dt_obj,
+ fld_rec(ctx, mds),
+ fld_key(ctx, seq), th);
+ dt->dd_ops->dt_trans_stop(ctx, th);
+ } else
+ rc = PTR_ERR(th);
RETURN(rc);
}
txn.tp_credits = FLD_TXN_INDEX_DELETE_CREDITS;
th = dt->dd_ops->dt_trans_start(ctx, dt, &txn);
-
- rc = dt_obj->do_index_ops->dio_delete(ctx, dt_obj,
- fld_key(ctx, seq), th);
- dt->dd_ops->dt_trans_stop(ctx, th);
-
+ if (!IS_ERR(th)) {
+ rc = dt_obj->do_index_ops->dio_delete(ctx, dt_obj,
+ fld_key(ctx, seq), th);
+ dt->dd_ops->dt_trans_stop(ctx, th);
+ } else
+ rc = PTR_ERR(th);
RETURN(rc);
}