The addition of i_dirhash to struct inode pushed RELENG_4's

sizeof(struct inode) into a new malloc bucket on the i386. This
didn't happen in -current due to the removal of i_lock, but it does
no harm to apply the workaround to -current first.

Reduce the size of the i_spare[] array in struct inode from 4 to
3 entries, and change ext2fs to use i_din.di_spare[1] so that it
does not need i_spare[3].

Reviewed by:	bde
MFC after:	3 days
This commit is contained in:
iedowse 2001-09-24 18:29:20 +00:00
parent 4ddf03aa88
commit 3fdda1f8d1
5 changed files with 7 additions and 7 deletions

View File

@ -48,8 +48,8 @@
#define i_block_group i_spare[0]
#define i_next_alloc_block i_spare[1]
#define i_next_alloc_goal i_spare[2]
#define i_prealloc_block i_spare[3]
#define i_prealloc_count i_din.di_spare[0]
#define i_prealloc_block i_din.di_spare[0]
#define i_prealloc_count i_din.di_spare[1]
/*
* The second extended filesystem constants/structures

View File

@ -93,7 +93,7 @@ struct inode {
doff_t i_offset; /* Offset of free space in directory. */
ino_t i_ino; /* Inode number of found directory. */
u_int32_t i_reclen; /* Size of found directory entry. */
u_int32_t i_spare[4]; /* XXX actually non-spare (for ext2fs). */
u_int32_t i_spare[3]; /* XXX actually non-spare (for ext2fs). */
struct dirhash *i_dirhash; /* Hashing for large directories */
/*

View File

@ -48,8 +48,8 @@
#define i_block_group i_spare[0]
#define i_next_alloc_block i_spare[1]
#define i_next_alloc_goal i_spare[2]
#define i_prealloc_block i_spare[3]
#define i_prealloc_count i_din.di_spare[0]
#define i_prealloc_block i_din.di_spare[0]
#define i_prealloc_count i_din.di_spare[1]
/*
* The second extended filesystem constants/structures

View File

@ -93,7 +93,7 @@ struct inode {
doff_t i_offset; /* Offset of free space in directory. */
ino_t i_ino; /* Inode number of found directory. */
u_int32_t i_reclen; /* Size of found directory entry. */
u_int32_t i_spare[4]; /* XXX actually non-spare (for ext2fs). */
u_int32_t i_spare[3]; /* XXX actually non-spare (for ext2fs). */
struct dirhash *i_dirhash; /* Hashing for large directories */
/*

View File

@ -93,7 +93,7 @@ struct inode {
doff_t i_offset; /* Offset of free space in directory. */
ino_t i_ino; /* Inode number of found directory. */
u_int32_t i_reclen; /* Size of found directory entry. */
u_int32_t i_spare[4]; /* XXX actually non-spare (for ext2fs). */
u_int32_t i_spare[3]; /* XXX actually non-spare (for ext2fs). */
struct dirhash *i_dirhash; /* Hashing for large directories */
/*