From: Timo Sirainen Date: Fri, 16 Oct 2020 07:19:59 +0000 (+0300) Subject: lib-fs: Include file's path when logging pending error messages X-Git-Tag: 2.3.13~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eaaf40ca4e8994824abff89fc617c3cc737d83a5;p=thirdparty%2Fdovecot%2Fcore.git lib-fs: Include file's path when logging pending error messages Otherwise it may not be known which file the error is about. This happens when a file is freed without the last error being logged. Also when an unlogged error is being replaced with a new error. --- diff --git a/src/lib-fs/fs-api.c b/src/lib-fs/fs-api.c index c7ae0476a5..67be9e6468 100644 --- a/src/lib-fs/fs-api.c +++ b/src/lib-fs/fs-api.c @@ -321,7 +321,8 @@ void fs_file_free(struct fs_file *file) fs_file_last_error(). Log it to make sure it's not lost. Note that the errors are always set only to the file at the root of the parent hierarchy. */ - e_error(file->event, "%s (in file deinit)", file->last_error); + e_error(file->event, "%s (in file %s deinit)", + file->last_error, fs_file_path(file)); } fs_file_deinit(&file->parent); @@ -608,7 +609,8 @@ fs_set_verror(struct event *event, const char *fmt, va_list args) } else if (file->last_error_changed) { /* multiple fs_set_error() calls used without fs_file_last_error() in the middle. */ - e_error(file->event, "%s (overwriting error)", old_error); + e_error(file->event, "%s (overwriting error for file %s)", + old_error, fs_file_path(file)); } if (errno == EAGAIN || errno == ENOENT || errno == EEXIST || errno == ENOTEMPTY) { @@ -630,8 +632,8 @@ fs_set_verror(struct event *event, const char *fmt, va_list args) } else if (iter->last_error != NULL) { /* multiple fs_set_error() calls before the iter finishes */ - e_error(iter->fs->event, "%s (overwriting error)", - iter->last_error); + e_error(iter->fs->event, "%s (overwriting error for file %s)", + iter->last_error, fs_file_path(file)); } i_free(iter->last_error); iter->last_error = new_error;