summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorнаб <[email protected]>2021-04-02 21:31:23 +0200
committerBrian Behlendorf <[email protected]>2021-04-14 13:19:49 -0700
commitea30225fdb2a1c2c78f0a11d06da27009e0262a6 (patch)
treeea4884355a38949e1c6bf4e2f58392405083ccd8
parent018560b1537a8b6ac54e875bc4d46d48760283fa (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.c2
-rw-r--r--cmd/zed/zed_file.c27
-rw-r--r--cmd/zed/zed_file.h2
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);