int hdr_digest;
int data_digest;
bool persistent;
+ bool quiet;
} cfg = { NULL };
#define BUF_SIZE 4096
goto out;
}
- if (write(fd, argstr, len) != len) {
- fprintf(stderr, "Failed to write to %s: %s\n",
- PATH_NVME_FABRICS, strerror(errno));
+ ret = write(fd, argstr, len);
+ if (ret != len) {
+ if (errno != EALREADY || !cfg.quiet)
+ fprintf(stderr, "Failed to write to %s: %s\n",
+ PATH_NVME_FABRICS, strerror(errno));
ret = -errno;
goto out_close;
}
/* already connected print message */
if (instance == -EALREADY) {
const char *traddr = log->entries[i].traddr;
- fprintf(stderr,
- "traddr=%.*s is already connected\n",
- space_strip_len(NVMF_TRADDR_SIZE, traddr),
- traddr);
+
+ if (!cfg.quiet)
+ fprintf(stderr,
+ "traddr=%.*s is already connected\n",
+ space_strip_len(NVMF_TRADDR_SIZE,
+ traddr),
+ traddr);
continue;
}
{"nr-poll-queues", 'P', "LIST", CFG_INT, &cfg.nr_poll_queues, required_argument, "number of poll queues to use (default 0)" },
{"queue-size", 'Q', "LIST", CFG_INT, &cfg.queue_size, required_argument, "number of io queue elements to use (default 128)" },
{"persistent", 'p', "LIST", CFG_NONE, &cfg.persistent, no_argument, "persistent discovery connection" },
+ {"quiet", 'Q', "LIST", CFG_NONE, &cfg.quiet, no_argument, "suppress already connected errors" },
{NULL},
};