svn commit: r253458 - head/sbin/nvmecontrol

Jim Harris jimharris at FreeBSD.org
Thu Jul 18 23:12:46 UTC 2013


Author: jimharris
Date: Thu Jul 18 23:12:44 2013
New Revision: 253458
URL: http://svnweb.freebsd.org/changeset/base/253458

Log:
  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

Modified:
  head/sbin/nvmecontrol/devlist.c
  head/sbin/nvmecontrol/nvmecontrol.c

Modified: head/sbin/nvmecontrol/devlist.c
==============================================================================
--- head/sbin/nvmecontrol/devlist.c	Thu Jul 18 22:11:27 2013	(r253457)
+++ head/sbin/nvmecontrol/devlist.c	Thu Jul 18 23:12:44 2013	(r253458)
@@ -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

Modified: head/sbin/nvmecontrol/nvmecontrol.c
==============================================================================
--- head/sbin/nvmecontrol/nvmecontrol.c	Thu Jul 18 22:11:27 2013	(r253457)
+++ head/sbin/nvmecontrol/nvmecontrol.c	Thu Jul 18 23:12:44 2013	(r253458)
@@ -163,11 +163,8 @@ read_namespace_data(int fd, int nsid, st
 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 s
 		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 s
 		if (exit_on_error)
 			exit(1);
 		else
-			return (1);
+			return (errno);
 	}
 
 	return (0);


More information about the svn-src-all mailing list