aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/vnconfig
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2000-12-15 16:40:11 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2000-12-15 16:40:11 +0000
commit18d87306fd2e128d1904c51c7d6d2be827f76fbc (patch)
treeb4e6baf9904bac3e203cc7e10ec0d077a3f23e55 /usr.sbin/vnconfig
parentec99c9e90b2cad382aab740ca5cbfd68a185bd35 (diff)
downloadsrc-18d87306fd2e128d1904c51c7d6d2be827f76fbc.tar.gz
src-18d87306fd2e128d1904c51c7d6d2be827f76fbc.zip
Don't do raw device 'r' mangling.
Try to use vn%d.ctl for setup and control if possible. This paves the way for a DEVFS/cloning vn driver.
Notes
Notes: svn path=/head/; revision=70053
Diffstat (limited to 'usr.sbin/vnconfig')
-rw-r--r--usr.sbin/vnconfig/vnconfig.c28
1 files changed, 4 insertions, 24 deletions
diff --git a/usr.sbin/vnconfig/vnconfig.c b/usr.sbin/vnconfig/vnconfig.c
index 11f9324c6b95..8c28fc979b0d 100644
--- a/usr.sbin/vnconfig/vnconfig.c
+++ b/usr.sbin/vnconfig/vnconfig.c
@@ -101,7 +101,6 @@ char *configfile;
int config __P((struct vndisk *));
void getoptions __P((struct vndisk *, char *));
-char *rawdevice __P((char *));
void readconfig __P((int));
static void usage __P((void));
static int getsize(const char *arg);
@@ -314,8 +313,11 @@ config(vnp)
}
}
- rdev = rawdevice(dev);
+ rdev = dev;
+ (void)asprintf(&rdev, "%s.ctl", dev);
f = fopen(rdev, "rw");
+ if (f == NULL)
+ f = fopen(dev, "rw");
if (f == NULL) {
warn("%s", dev);
return(1);
@@ -555,28 +557,6 @@ getoptions(vnp, fstr)
vnp->oarg = NULL;
}
-char *
-rawdevice(dev)
- char *dev;
-{
- register char *rawbuf, *dp, *ep;
- struct stat sb;
- int len;
-
- len = strlen(dev);
- rawbuf = malloc(len + 2);
- strcpy(rawbuf, dev);
- if (stat(rawbuf, &sb) != 0 || !S_ISCHR(sb.st_mode)) {
- dp = rindex(rawbuf, '/');
- if (dp) {
- for (ep = &rawbuf[len]; ep > dp; --ep)
- *(ep+1) = *ep;
- *++ep = 'r';
- }
- }
- return (rawbuf);
-}
-
static void
usage()
{