From 49c7fa8db0e335f5a8b84bb16b0ba164f4c2008f Mon Sep 17 00:00:00 2001 From: Marco Bettini Date: Fri, 15 Sep 2023 09:11:21 +0000 Subject: [PATCH] lib-index: mail_transaction_log_file_lock() - Consolidate index = file->log->index --- src/lib-index/mail-transaction-log-file.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lib-index/mail-transaction-log-file.c b/src/lib-index/mail-transaction-log-file.c index 254affb761..3a1849d320 100644 --- a/src/lib-index/mail-transaction-log-file.c +++ b/src/lib-index/mail-transaction-log-file.c @@ -360,6 +360,7 @@ mail_transaction_log_file_undotlock(struct mail_transaction_log_file *file) int mail_transaction_log_file_lock(struct mail_transaction_log_file *file) { + struct mail_index *index = file->log->index; unsigned int lock_timeout_secs; int ret; @@ -371,11 +372,11 @@ int mail_transaction_log_file_lock(struct mail_transaction_log_file *file) return 0; } - if (file->log->index->set.lock_method == FILE_LOCK_METHOD_DOTLOCK) + if (index->set.lock_method == FILE_LOCK_METHOD_DOTLOCK) return mail_transaction_log_file_dotlock(file); - if (file->log->index->readonly) { - mail_index_set_error(file->log->index, + if (index->readonly) { + mail_index_set_error(index, "Index is read-only, can't write-lock %s", file->filepath); return -1; @@ -383,8 +384,8 @@ int mail_transaction_log_file_lock(struct mail_transaction_log_file *file) i_assert(file->file_lock == NULL); lock_timeout_secs = I_MIN(MAIL_TRANSACTION_LOG_LOCK_TIMEOUT, - file->log->index->set.max_lock_timeout_secs); - ret = mail_index_lock_fd(file->log->index, file->filepath, file->fd, + index->set.max_lock_timeout_secs); + ret = mail_index_lock_fd(index, file->filepath, file->fd, F_WRLCK, lock_timeout_secs, &file->file_lock); if (ret > 0) { @@ -397,11 +398,11 @@ int mail_transaction_log_file_lock(struct mail_transaction_log_file *file) return -1; } - mail_index_set_error(file->log->index, + mail_index_set_error(index, "Timeout (%us) while waiting for lock for " "transaction log file %s%s", lock_timeout_secs, file->filepath, - file_lock_find(file->fd, file->log->index->set.lock_method, F_WRLCK)); + file_lock_find(file->fd, index->set.lock_method, F_WRLCK)); return -1; } -- 2.47.3