diff options
author | наб <[email protected]> | 2021-04-02 21:31:23 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2021-04-14 13:19:49 -0700 |
commit | ea30225fdb2a1c2c78f0a11d06da27009e0262a6 (patch) | |
tree | ea4884355a38949e1c6bf4e2f58392405083ccd8 | |
parent | 018560b1537a8b6ac54e875bc4d46d48760283fa (diff) |
zed: replace zed_file_write_n() with write(2), purge it
We set SA_RESTART early on, which will prevent EINTRs (indeed, to the
point of needing to clear it in the reaper, since it interferes with
pause(2)), which is the only error zed_file_write_n() actually handled
(plus, the pid write is no bigger than 12 bytes anyway)
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Ahelenia Ziemiańska <[email protected]>
Closes #11834
-rw-r--r-- | cmd/zed/zed_conf.c | 2 | ||||
-rw-r--r-- | cmd/zed/zed_file.c | 27 | ||||
-rw-r--r-- | cmd/zed/zed_file.h | 2 |
3 files changed, 1 insertions, 30 deletions
diff --git a/cmd/zed/zed_conf.c b/cmd/zed/zed_conf.c index f11d8b398..1dbbb3b65 100644 --- a/cmd/zed/zed_conf.c +++ b/cmd/zed/zed_conf.c @@ -515,7 +515,7 @@ zed_conf_write_pid(struct zed_conf *zcp) errno = ERANGE; zed_log_msg(LOG_ERR, "Failed to write PID file \"%s\": %s", zcp->pid_file, strerror(errno)); - } else if (zed_file_write_n(zcp->pid_fd, buf, n) != n) { + } else if (write(zcp->pid_fd, buf, n) != n) { zed_log_msg(LOG_ERR, "Failed to write PID file \"%s\": %s", zcp->pid_file, strerror(errno)); } else if (fdatasync(zcp->pid_fd) < 0) { diff --git a/cmd/zed/zed_file.c b/cmd/zed/zed_file.c index aeaa7a014..401ab89eb 100644 --- a/cmd/zed/zed_file.c +++ b/cmd/zed/zed_file.c @@ -25,33 +25,6 @@ #include "zed_log.h" /* - * Write [n] bytes from [buf] out to [fd]. - * Return the number of bytes written, or -1 on error. - */ -ssize_t -zed_file_write_n(int fd, void *buf, size_t n) -{ - const unsigned char *p; - size_t n_left; - ssize_t n_written; - - p = buf; - n_left = n; - while (n_left > 0) { - if ((n_written = write(fd, p, n_left)) < 0) { - if (errno == EINTR) - continue; - else - return (-1); - - } - n_left -= n_written; - p += n_written; - } - return (n); -} - -/* * Set an exclusive advisory lock on the open file descriptor [fd]. * Return 0 on success, 1 if a conflicting lock is held by another process, * or -1 on error (with errno set). diff --git a/cmd/zed/zed_file.h b/cmd/zed/zed_file.h index 28473a545..5cb5e8804 100644 --- a/cmd/zed/zed_file.h +++ b/cmd/zed/zed_file.h @@ -18,8 +18,6 @@ #include <sys/types.h> #include <unistd.h> -ssize_t zed_file_write_n(int fd, void *buf, size_t n); - int zed_file_lock(int fd); int zed_file_unlock(int fd); |