- if ((tdb->flags & TDB_RDONLY) || (tdb->flags & TDB_INTERNAL) || tdb->tdb1.traverse_read) {
- tdb->last_error = tdb_logerr(tdb, TDB_ERR_EINVAL, TDB_LOG_USE_ERROR,
- "tdb1_transaction_start: cannot start a"
- " transaction on a read-only or"
- " internal db");
+ if (tdb->flags & TDB_INTERNAL) {
+ tdb->last_error = tdb_logerr(tdb, TDB_ERR_EINVAL,
+ TDB_LOG_USE_ERROR,
+ "tdb1_transaction_start:"
+ " cannot start a"
+ " transaction on an"
+ " internal tdb");
+ return -1;
+ }
+
+ if ((tdb->flags & TDB_RDONLY) || tdb->tdb1.traverse_read) {
+ tdb->last_error = tdb_logerr(tdb, TDB_ERR_RDONLY,
+ TDB_LOG_USE_ERROR,
+ "tdb_transaction_start:"
+ " cannot start a"
+ " transaction on a "
+ " read-only tdb");