Module Name: src
Committed By: mlelstv
Date: Sat Oct 25 16:47:24 UTC 2014
Modified Files:
src/sbin/newfs: newfs.c
Log Message:
Support wedge names.
before:
newfs dk1 - formats /dev/rdk1
newfs rdk1 - cannot open /dev/rrdk1
newfs /dev/dk1 - /dev/dk1 is a block-device, use raw device
newfs /dev/rdk1 - formats /dev/rdk1
now:
newfs dk1 - formats /dev/rdk1
newfs rdk1 - cannot open /dev/rrdk1
newfs /dev/dk1 - formats /dev/rdk1 (*)
newfs /dev/rdk1 - formats /dev/rdk1
newfs NAME=wedge - formats /dev/rdk1
(*) getfsspecname() returns the block device which must be translated.
Passing a block device manually cannot be distinguished from this case.
To generate a diff of this commit:
cvs rdiff -u -r1.111 -r1.112 src/sbin/newfs/newfs.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sbin/newfs/newfs.c
diff -u src/sbin/newfs/newfs.c:1.111 src/sbin/newfs/newfs.c:1.112
--- src/sbin/newfs/newfs.c:1.111 Sat Jun 30 15:34:01 2012
+++ src/sbin/newfs/newfs.c Sat Oct 25 16:47:23 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: newfs.c,v 1.111 2012/06/30 15:34:01 tsutsui Exp $ */
+/* $NetBSD: newfs.c,v 1.112 2014/10/25 16:47:23 mlelstv Exp $ */
/*
* Copyright (c) 1983, 1989, 1993, 1994
@@ -78,7 +78,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 19
#if 0
static char sccsid[] = "@(#)newfs.c 8.13 (Berkeley) 5/1/95";
#else
-__RCSID("$NetBSD: newfs.c,v 1.111 2012/06/30 15:34:01 tsutsui Exp $");
+__RCSID("$NetBSD: newfs.c,v 1.112 2014/10/25 16:47:23 mlelstv Exp $");
#endif
#endif /* not lint */
@@ -242,7 +242,10 @@ main(int argc, char *argv[])
struct statvfs *mp;
struct stat sb;
int ch, fsi, fso, len, n, Fflag, Iflag, Zflag;
- char *s1, *s2, *special;
+ const char *s1, *special, *raw;
+ char *s2;
+ char specname[MAXPATHLEN];
+ char rawname[MAXPATHLEN];
const char *opstring;
int byte_sized = 0;
#ifdef MFS
@@ -490,6 +493,11 @@ main(int argc, char *argv[])
fso = fsi;
}
} else { /* !Fflag && !mfs */
+ special = getfsspecname(specname, sizeof(specname), special);
+ raw = getdiskrawname(rawname, sizeof(rawname), special);
+ if (raw != NULL)
+ special = raw;
+
fsi = opendisk(special, O_RDONLY, device, sizeof(device), 0);
special = device;
if (fsi < 0 || fstat(fsi, &sb) == -1)