diff options
author | scrappy <scrappy@FreeBSD.org> | 1996-04-05 19:12:01 +0000 |
---|---|---|
committer | scrappy <scrappy@FreeBSD.org> | 1996-04-05 19:12:01 +0000 |
commit | 6233a369535004956f4332ee2e8363b052d37827 (patch) | |
tree | 1a740120592c49db22c5723ca527d2848d584926 | |
parent | 72565796f2ff9a94c3763e6b1a8011dfc6ae1eb4 (diff) | |
download | FreeBSD-src-6233a369535004956f4332ee2e8363b052d37827.zip FreeBSD-src-6233a369535004956f4332ee2e8363b052d37827.tar.gz |
Fixed a bug in DEVFS code that was producing "name slot allocation failed"
messages.
-rw-r--r-- | sys/kern/subr_diskslice.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/sys/kern/subr_diskslice.c b/sys/kern/subr_diskslice.c index 7bdbef1..2e36551 100644 --- a/sys/kern/subr_diskslice.c +++ b/sys/kern/subr_diskslice.c @@ -43,7 +43,7 @@ * from: wd.c,v 1.55 1994/10/22 01:57:12 phk Exp $ * from: @(#)ufs_disksubr.c 7.16 (Berkeley) 5/4/91 * from: ufs_disksubr.c,v 1.8 1994/06/07 01:21:39 phk Exp $ - * $Id: subr_diskslice.c,v 1.21 1996/04/01 21:03:07 scrappy Exp $ + * $Id: subr_diskslice.c,v 1.22 1996/04/02 04:52:03 scrappy Exp $ */ #include <sys/param.h> @@ -660,10 +660,12 @@ dsopen(dname, dev, mode, sspp, lp, strat, setgeom, bdevsw, cdevsw) sname = dsname(dname, unit, slice, RAW_PART, partname); sp->ds_bdev = devfs_add_devswf(bdevsw, mynor, DV_BLK, UID_ROOT, - GID_OPERATOR, 0640, "%s", sname); + GID_OPERATOR, 0640, "%s%s", sname, + partname); sp->ds_cdev = devfs_add_devswf(cdevsw, mynor, DV_CHR, UID_ROOT, - GID_OPERATOR, 0640, "r%s", sname); + GID_OPERATOR, 0640, "r%s%s", sname, + partname); } #endif if (sp->ds_label == NULL) { @@ -942,6 +944,7 @@ set_ds_labeldevs(dname, dev, ssp) struct disklabel *lp; int mynor; int part; + char *devname; char partname[2]; struct partition *pp; int slice; @@ -956,31 +959,25 @@ set_ds_labeldevs(dname, dev, ssp) pp = &lp->d_partitions[part]; if (pp->p_size == 0) continue; + devname = dsname(dname, dkunit(dev), slice, + part, partname); if (part == RAW_PART && sp->ds_bdev != NULL) { sp->ds_bdevs[part] = devfs_link(sp->ds_bdev, "%s%s", - dsname(dname, dkunit(dev), slice, - part, partname), - partname); + devname, partname); sp->ds_cdevs[part] = devfs_link(sp->ds_cdev, "r%s%s", - dsname(dname, dkunit(dev), slice, - part, partname), - partname); + devname, partname); } else { mynor = minor(dkmodpart(dev, part)); sp->ds_bdevs[part] = devfs_add_devswf(ssp->dss_bdevsw, mynor, DV_BLK, UID_ROOT, GID_OPERATOR, 0640, - "%s", - dsname(dname, dkunit(dev), - slice, part, partname)); + "%s%s", devname, partname); sp->ds_cdevs[part] = devfs_add_devswf(ssp->dss_cdevsw, mynor, DV_CHR, UID_ROOT, GID_OPERATOR, 0640, - "r%s", - dsname(dname, dkunit(dev), - slice, part, partname)); + "r%s%s", devname, partname); } } } |