]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
fd-util: check and log error properly for fd_reopen_propagate_append_and_position
authorMike Yuan <me@yhndnzj.com>
Thu, 16 May 2024 11:12:38 +0000 (19:12 +0800)
committerMike Yuan <me@yhndnzj.com>
Thu, 16 May 2024 11:17:25 +0000 (19:17 +0800)
Follow-up for b8e25bff386548f679902c6b797a5a8ff1542c8b

src/basic/fd-util.c

index 121e6cd219055a9e7b23a67f673e15184e46cf71..da4ee63add8c163c40535cabc18085083119b5d2 100644 (file)
@@ -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;
 }