summaryrefslogtreecommitdiffstats
path: root/sbin/nvmecontrol
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2013-07-18 23:12:44 +0000
committerjimharris <jimharris@FreeBSD.org>2013-07-18 23:12:44 +0000
commit3e18e4fbf6a97737356dbbed8ef7bbdb2e644b0b (patch)
tree000833b9431cc7697fbeb0972de926220c1d3fc4 /sbin/nvmecontrol
parentf2d723e2cd0338fca77bf3cf31dde28ecb13132e (diff)
downloadFreeBSD-src-3e18e4fbf6a97737356dbbed8ef7bbdb2e644b0b.zip
FreeBSD-src-3e18e4fbf6a97737356dbbed8ef7bbdb2e644b0b.tar.gz
Simplify open_dev() by returning errno values rather than just 0 or 1.
Also remove stat() call and just rely on errno from open() call to discern whether dev node exists or not. Sponsored by: Intel Reviewed by: kib, carl MFC after: 3 days
Diffstat (limited to 'sbin/nvmecontrol')
-rw-r--r--sbin/nvmecontrol/devlist.c3
-rw-r--r--sbin/nvmecontrol/nvmecontrol.c16
2 files changed, 4 insertions, 15 deletions
diff --git a/sbin/nvmecontrol/devlist.c b/sbin/nvmecontrol/devlist.c
index 46879db..2a95832 100644
--- a/sbin/nvmecontrol/devlist.c
+++ b/sbin/nvmecontrol/devlist.c
@@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <err.h>
+#include <errno.h>
#include <fcntl.h>
#include <stddef.h>
#include <stdio.h>
@@ -80,7 +81,7 @@ devlist(int argc, char *argv[])
ret = open_dev(name, &fd, 0, 0);
if (ret != 0) {
- if (fd < 0) {
+ if (ret == EACCES) {
warnx("could not open /dev/%s\n", name);
continue;
} else
diff --git a/sbin/nvmecontrol/nvmecontrol.c b/sbin/nvmecontrol/nvmecontrol.c
index 826195d..333bb62 100644
--- a/sbin/nvmecontrol/nvmecontrol.c
+++ b/sbin/nvmecontrol/nvmecontrol.c
@@ -163,11 +163,8 @@ read_namespace_data(int fd, int nsid, struct nvme_namespace_data *nsdata)
int
open_dev(const char *str, int *fd, int show_error, int exit_on_error)
{
- struct stat devstat;
char full_path[64];
- *fd = 0;
-
if (!strnstr(str, NVME_CTRLR_PREFIX, strlen(NVME_CTRLR_PREFIX))) {
if (show_error)
warnx("controller/namespace ids must begin with '%s'",
@@ -175,19 +172,10 @@ open_dev(const char *str, int *fd, int show_error, int exit_on_error)
if (exit_on_error)
exit(1);
else
- return (1);
+ return (EINVAL);
}
snprintf(full_path, sizeof(full_path), "/dev/%s", str);
- if (stat(full_path, &devstat) != 0) {
- if (show_error)
- warn("could not stat %s", full_path);
- if (exit_on_error)
- exit(1);
- else
- return (1);
- }
-
*fd = open(full_path, O_RDWR);
if (*fd < 0) {
if (show_error)
@@ -195,7 +183,7 @@ open_dev(const char *str, int *fd, int show_error, int exit_on_error)
if (exit_on_error)
exit(1);
else
- return (1);
+ return (errno);
}
return (0);
OpenPOWER on IntegriCloud