diff options
author | grog <grog@FreeBSD.org> | 2003-05-23 01:13:43 +0000 |
---|---|---|
committer | grog <grog@FreeBSD.org> | 2003-05-23 01:13:43 +0000 |
commit | 18dc607a3bdd5f64bb40d2c74d78d3b7e91e4f26 (patch) | |
tree | aae8aed70478652ffd749b92fd054da70a795c52 /sys | |
parent | eeb76b20a0ff77c799a7c357e3ee2fd5755e2d9a (diff) | |
download | FreeBSD-src-18dc607a3bdd5f64bb40d2c74d78d3b7e91e4f26.zip FreeBSD-src-18dc607a3bdd5f64bb40d2c74d78d3b7e91e4f26.tar.gz |
Change the way the plex lock mutexes work. Previously they were part
of the struct plex, which tore apart the mutex linked lists when the
plex table was expanded. Now we maintain a pool of mutexes (currently
32) to be shared by all plexes. This is still a lot better than the
splhigh() method used in other architectures.
update_volume_config: Remove redundant diskconfig parameter.
expand_table: Add parameters file and line if we're debugging.
Approved by: re (jhb)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/vinum/vinumext.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/vinum/vinumext.h b/sys/dev/vinum/vinumext.h index e2d30ef..807bb5c6 100644 --- a/sys/dev/vinum/vinumext.h +++ b/sys/dev/vinum/vinumext.h @@ -33,7 +33,7 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: vinumext.h,v 1.31 2003/04/25 08:01:37 grog Exp $ + * $Id: vinumext.h,v 1.33 2003/05/23 00:57:48 grog Exp $ * $FreeBSD$ */ @@ -42,6 +42,7 @@ /* *sigh* We still need this at the moment. */ #ifdef _KERNEL extern struct _vinum_conf vinum_conf; /* configuration information */ +extern struct mtx plexmutex[]; /* mutexes for plexes to use */ #else extern struct __vinum_conf vinum_conf; /* configuration information */ #endif @@ -102,7 +103,7 @@ void config_drive(int); void updateconfig(int); void update_sd_config(int sdno, int kernelstate); void update_plex_config(int plexno, int kernelstate); -void update_volume_config(int volno, int kernelstate); +void update_volume_config(int volno); void update_config(void); void drive_io_done(struct buf *); void save_config(void); @@ -159,7 +160,11 @@ void LongJmp(jmp_buf, int); char *basename(char *); #endif +#ifdef VINUMDEBUG +void expand_table(void **, int, int, char *, int); +#else void expand_table(void **, int, int); +#endif struct disklabel; struct request; |