summaryrefslogtreecommitdiffstats
path: root/usr.sbin/vnconfig
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2000-12-15 16:40:11 +0000
committerphk <phk@FreeBSD.org>2000-12-15 16:40:11 +0000
commit139e3e3e413d31c576b790001e28b1fcffe4551f (patch)
tree4f7adbe428e90fe0a10c6fd01bb56d6ae2d012b6 /usr.sbin/vnconfig
parent0f35e87fbb82834775bcf84ada759ba0efc39d74 (diff)
downloadFreeBSD-src-139e3e3e413d31c576b790001e28b1fcffe4551f.zip
FreeBSD-src-139e3e3e413d31c576b790001e28b1fcffe4551f.tar.gz
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.
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 11f9324..8c28fc9 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()
{
OpenPOWER on IntegriCloud