diff options
author | bde <bde@FreeBSD.org> | 1995-03-04 11:08:26 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1995-03-04 11:08:26 +0000 |
commit | e11bf3ee668eadb08e7dfd3a71a37f6d04a7e811 (patch) | |
tree | ee52f5615aae5ddfdf263f049b97d3da30adb954 /sys/dev/vn | |
parent | 6c07e800e788a78b76b58246aa791959925cb4ba (diff) | |
download | FreeBSD-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.c | 19 |
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; |