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:
parent
4ddf03aa88
commit
3fdda1f8d1
@ -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
|
||||
|
@ -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 */
|
||||
/*
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
/*
|
||||
|
@ -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 */
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user