summaryrefslogtreecommitdiffstats
path: root/sys/dev/vn
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1995-03-04 11:08:26 +0000
committerbde <bde@FreeBSD.org>1995-03-04 11:08:26 +0000
commite11bf3ee668eadb08e7dfd3a71a37f6d04a7e811 (patch)
treeee52f5615aae5ddfdf263f049b97d3da30adb954 /sys/dev/vn
parent6c07e800e788a78b76b58246aa791959925cb4ba (diff)
downloadFreeBSD-src-e11bf3ee668eadb08e7dfd3a71a37f6d04a7e811.zip
FreeBSD-src-e11bf3ee668eadb08e7dfd3a71a37f6d04a7e811.tar.gz
Fake the geometry to be 32 sectors * 64 heads * (vn->sc_size / 2048)
cylinders instead of vn->sc_size * 1 * 1. Remove unnecessary tests of the unit numbern vnioctl().
Diffstat (limited to 'sys/dev/vn')
-rw-r--r--sys/dev/vn/vn.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/sys/dev/vn/vn.c b/sys/dev/vn/vn.c
index 2e74cc6..3e075ac 100644
--- a/sys/dev/vn/vn.c
+++ b/sys/dev/vn/vn.c
@@ -64,7 +64,7 @@
/* default is to have 8 VN's */
#if NVN < 8
#undef NVN
-#define NVN 8
+#define NVN 8
#endif
#include <sys/param.h>
@@ -186,12 +186,12 @@ vnopen(dev_t dev, int flags, int mode, struct proc *p)
/* Build label for whole disk. */
bzero(&label, sizeof label);
label.d_secsize = DEV_BSIZE;
- label.d_nsectors = vn->sc_size;
- label.d_ntracks = 1;
- label.d_ncylinders = 1;
- label.d_secpercyl = label.d_nsectors;
+ label.d_nsectors = 32;
+ label.d_ntracks = 64;
+ label.d_ncylinders = vn->sc_size / (32 * 64);
+ label.d_secpercyl = 32 * 64;
label.d_secperunit = label.d_partitions[RAW_PART].p_size
- = label.d_nsectors;
+ = vn->sc_size;
return (dsopen("vn", dev, mode, &vn->sc_slices, &label,
vnstrategy, (ds_setgeom_t *)NULL));
@@ -421,11 +421,6 @@ vnioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
#endif
#ifdef TEST_LABELLING
- /*
- * XXX test is unnecessary?
- */
- if (unit >= NVN)
- return (ENXIO);
vn = vn_softc[unit];
if (vn->sc_slices != NULL) {
error = dsioctl(dev, cmd, data, flag, vn->sc_slices,
@@ -440,8 +435,6 @@ vnioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
error = suser(p->p_ucred, &p->p_acflag);
if (error)
return (error);
- if (unit >= NVN)
- return (ENXIO);
vn = vn_softc[unit];
vio = (struct vn_ioctl *)data;
OpenPOWER on IntegriCloud