From 2599b32e727cbd7058f3d2bba9d9a49aae83d9dc Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Thu, 16 May 2024 19:12:38 +0800 Subject: [PATCH] fd-util: check and log error properly for fd_reopen_propagate_append_and_position Follow-up for b8e25bff386548f679902c6b797a5a8ff1542c8b --- src/basic/fd-util.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c index 121e6cd2190..da4ee63add8 100644 --- a/src/basic/fd-util.c +++ b/src/basic/fd-util.c @@ -896,21 +896,18 @@ int fd_reopen_propagate_append_and_position(int fd, int flags) { if (new_fd < 0) return new_fd; - /* Try to adjust the offset, but ignore errors for now. */ + /* Try to adjust the offset, but ignore errors. */ off_t p = lseek(fd, 0, SEEK_CUR); - if (p <= 0) - return new_fd; - - off_t new_p = lseek(new_fd, p, SEEK_SET); - if (new_p == (off_t) -1) - log_debug_errno(errno, - "Failed to propagate file position for re-opened fd %d, ignoring: %m", - fd); - else if (new_p != p) - log_debug("Failed to propagate file position for re-opened fd %d (%lld != %lld), ignoring: %m", - fd, - (long long) new_p, - (long long) p); + if (p > 0) { + off_t new_p = lseek(new_fd, p, SEEK_SET); + if (new_p < 0) + log_debug_errno(errno, + "Failed to propagate file position for re-opened fd %d, ignoring: %m", + fd); + else if (new_p != p) + log_debug("Failed to propagate file position for re-opened fd %d (%lld != %lld), ignoring.", + fd, (long long) new_p, (long long) p); + } return new_fd; } -- 2.47.3