summaryrefslogtreecommitdiff
path: root/util/nvmutil
diff options
context:
space:
mode:
Diffstat (limited to 'util/nvmutil')
-rw-r--r--util/nvmutil/nvmutil.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c
index 59274f07..0ccf6ff0 100644
--- a/util/nvmutil/nvmutil.c
+++ b/util/nvmutil/nvmutil.c
@@ -383,7 +383,8 @@ static int
valid_read(const char *rpath, ssize_t rval, size_t rsize, int retry)
{
if (rval == (ssize_t) rsize)
- return 1;
+ return 1; /* Successful read */
+
if (rval != -1)
err(ECANCELED, "Short read, %zd: %s", rval, rpath);
if (errno != EINTR)
@@ -391,6 +392,10 @@ valid_read(const char *rpath, ssize_t rval, size_t rsize, int retry)
if (retry == MAX_RETRY_READ - 1)
err(EINTR, "read: max retries exceeded: %s", rpath);
+ /*
+ * Bad read, with errno EINTR (syscall interrupted).
+ * Reset the error state and try again.
+ */
errno = 0;
return 0;
}