diff options
Diffstat (limited to 'sys/miscfs/specfs')
-rw-r--r-- | sys/miscfs/specfs/spec_vnops.c | 11 | ||||
-rw-r--r-- | sys/miscfs/specfs/specdev.h | 6 |
2 files changed, 13 insertions, 4 deletions
diff --git a/sys/miscfs/specfs/spec_vnops.c b/sys/miscfs/specfs/spec_vnops.c index 666322f..82f001d 100644 --- a/sys/miscfs/specfs/spec_vnops.c +++ b/sys/miscfs/specfs/spec_vnops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95 - * $Id: spec_vnops.c,v 1.59 1998/03/08 08:46:18 dyson Exp $ + * $Id: spec_vnops.c,v 1.60 1998/03/08 09:57:36 julian Exp $ */ #include <sys/param.h> @@ -761,8 +761,15 @@ spec_getpages(ap) * Round up physical size for real devices, use the * fundamental blocksize of the fs if possible. */ - if (vp && vp->v_mount) + if (vp && vp->v_mount) { + if (vp->v_type != VBLK) { + vprint("Non VBLK", vp); + } blksiz = vp->v_mount->mnt_stat.f_bsize; + if (blksiz < DEV_BSIZE) { + blksiz = DEV_BSIZE; + } + } else blksiz = DEV_BSIZE; size = (ap->a_count + blksiz - 1) & ~(blksiz - 1); diff --git a/sys/miscfs/specfs/specdev.h b/sys/miscfs/specfs/specdev.h index b4c6f77..9c225a3 100644 --- a/sys/miscfs/specfs/specdev.h +++ b/sys/miscfs/specfs/specdev.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)specdev.h 8.6 (Berkeley) 5/21/95 - * $Id: specdev.h,v 1.13 1997/10/15 13:23:21 phk Exp $ + * $Id: specdev.h,v 1.14 1998/03/08 09:57:40 julian Exp $ */ /* @@ -43,7 +43,8 @@ struct specinfo { struct vnode **si_hashchain; struct vnode *si_specnext; struct mount *si_mountpoint; - dev_t si_rdev; + dev_t si_rdev; + unsigned long si_blksize; /* smallest IO unit */ }; /* * Exported shorthand @@ -52,6 +53,7 @@ struct specinfo { #define v_hashchain v_specinfo->si_hashchain #define v_specnext v_specinfo->si_specnext #define v_specmountpoint v_specinfo->si_mountpoint +#define v_blksize v_specinfo->si_blksize /* * Special device management |