diff options
author | Poul-Henning Kamp <phk@FreeBSD.org> | 2000-12-15 16:40:11 +0000 |
---|---|---|
committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2000-12-15 16:40:11 +0000 |
commit | 18d87306fd2e128d1904c51c7d6d2be827f76fbc (patch) | |
tree | b4e6baf9904bac3e203cc7e10ec0d077a3f23e55 /usr.sbin/vnconfig | |
parent | ec99c9e90b2cad382aab740ca5cbfd68a185bd35 (diff) | |
download | src-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.c | 28 |
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() { |