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)