diff options
author | Greg Hudson <ghudson@mit.edu> | 2014-02-12 19:13:43 -0500 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2014-02-20 15:55:48 -0500 |
commit | 444ef5fe9ec8d64a5db27b3a8aaf6813dd7ef0e0 (patch) | |
tree | 2aa702a46a9ac7414a5e272b7cf6e73bf7f8c8bd /src/include | |
parent | dba768e873d3ae34cfb2ff9d9c2d3644981f23a5 (diff) | |
download | krb5-444ef5fe9ec8d64a5db27b3a8aaf6813dd7ef0e0.tar.gz krb5-444ef5fe9ec8d64a5db27b3a8aaf6813dd7ef0e0.tar.xz krb5-444ef5fe9ec8d64a5db27b3a8aaf6813dd7ef0e0.zip |
Simplify iprop update locking and avoid deadlock
Since we are no longer treating the update log like a journal (#7552),
we don't need two-stage update logging. In kdb5.c, add an update log
entry after each DB change in one step, without getting an explicit
lock. In kdb_log.c, combine ulog_add_update with ulog_finish_update,
and make ulog_add_update lock the ulog internally.
This change avoids deadlock by removing the only cases where the ulog
is locked before the DB.
ticket: 7861
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/kdb_log.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/src/include/kdb_log.h b/src/include/kdb_log.h index 16d8af2c66..c61b285a4c 100644 --- a/src/include/kdb_log.h +++ b/src/include/kdb_log.h @@ -71,8 +71,6 @@ krb5_error_code ulog_map(krb5_context context, const char *logname, uint32_t entries, int caller, char **db_args); void ulog_init_header(krb5_context context); krb5_error_code ulog_add_update(krb5_context context, kdb_incr_update_t *upd); -krb5_error_code ulog_finish_update(krb5_context context, - kdb_incr_update_t *upd); krb5_error_code ulog_get_entries(krb5_context context, const kdb_last_t *last, kdb_incr_result_t *ulog_handle); krb5_error_code ulog_replay(krb5_context context, kdb_incr_result_t *incr_ret, |