From 03705cdeb772b202a44476c5d70da15fa9e6b599 Mon Sep 17 00:00:00 2001 From: Greg Lehey Date: Sun, 29 Aug 1999 01:41:53 +0000 Subject: [PATCH] Initialize the si_bsize fields of the new dev structure. This fixes some swapper problems analogous to those experienced with ccd. This fix is a kludge: since we currently don't track the "sector size" in a volume label, we guess a worst case (4 kB, as used by vnode devices). If the concept of sector size is here to stay, I'll make some changes to track the "sector size" of a volume. This will probably be the maximum of the sector sizes of all component drives, but things could get ugly if we start allowing non-standard sector sizes such as 524 bytes. Unkludged-version-submitted-by: phk --- sys/dev/vinum/vinum.c | 6 ++++++ sys/dev/vinum/vinumvar.h | 1 + 2 files changed, 7 insertions(+) diff --git a/sys/dev/vinum/vinum.c b/sys/dev/vinum/vinum.c index 7149ee862af2..29b7232b8f33 100644 --- a/sys/dev/vinum/vinum.c +++ b/sys/dev/vinum/vinum.c @@ -271,6 +271,9 @@ vinumopen(dev_t dev, int devminor; /* minor number */ devminor = minor(dev); + dev->si_bsize_phys = DEV_BSIZE; + dev->si_bsize_best = VINUM_BSIZE_BEST; /* kludge until we track drive block sizes */ + dev->si_bsize_max = MAXBSIZE; error = 0; /* First, decide what we're looking at */ switch (DEVTYPE(dev)) { @@ -469,3 +472,6 @@ vinumdump(dev_t dev) /* Not implemented. */ return ENXIO; } +/* Local Variables: */ +/* fill-column: 50 */ +/* End: */ diff --git a/sys/dev/vinum/vinumvar.h b/sys/dev/vinum/vinumvar.h index a37c9e82d697..9f7c92afcf0e 100644 --- a/sys/dev/vinum/vinumvar.h +++ b/sys/dev/vinum/vinumvar.h @@ -178,6 +178,7 @@ enum constants { INITIAL_LOCKS = 64, /* number of locks to allocate to a plex */ DEFAULT_REVIVE_BLOCKSIZE = 65536, /* size of block to transfer in one op */ VINUMHOSTNAMELEN = 32, /* host name field in label */ + VINUM_BSIZE_BEST = 4096, /* best sector size */ }; /* device numbers */