Module Name: src
Committed By: christos
Date: Sun Apr 8 20:56:12 UTC 2012
Modified Files:
src/lib/libutil: getfsspecname.c
Log Message:
Fix compat code, so if we failed to make raw, return the regular path.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/lib/libutil/getfsspecname.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libutil/getfsspecname.c
diff -u src/lib/libutil/getfsspecname.c:1.2 src/lib/libutil/getfsspecname.c:1.3
--- src/lib/libutil/getfsspecname.c:1.2 Sat Apr 7 13:10:02 2012
+++ src/lib/libutil/getfsspecname.c Sun Apr 8 16:56:12 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: getfsspecname.c,v 1.2 2012/04/07 17:10:02 christos Exp $ */
+/* $NetBSD: getfsspecname.c,v 1.3 2012/04/08 20:56:12 christos Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: getfsspecname.c,v 1.2 2012/04/07 17:10:02 christos Exp $");
+__RCSID("$NetBSD: getfsspecname.c,v 1.3 2012/04/08 20:56:12 christos Exp $");
#include <sys/types.h>
#include <sys/sysctl.h>
@@ -67,18 +67,15 @@ getfsspecname(char *buf, size_t bufsiz,
*/
char rbuf[MAXPATHLEN];
if (name[0] == '/') {
- if (getdiskrawname(rbuf, sizeof(rbuf), name) == NULL) {
- savee = errno;
- strlcpy(buf, "makeraw failed", bufsiz);
- goto out;
+ if (getdiskrawname(rbuf, sizeof(rbuf), name) != NULL) {
+ if ((fd = open(rbuf, O_RDONLY)) == -1) {
+ if (errno == EBUSY) {
+ name = strrchr(name, '/') + 1;
+ goto search;
+ }
+ } else
+ close(fd);
}
- if ((fd = open(rbuf, O_RDONLY)) == -1) {
- if (errno == EBUSY) {
- name = strrchr(name, '/') + 1;
- goto search;
- }
- } else
- close(fd);
}
#endif
strlcpy(buf, name, bufsiz);