mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
kernfs: Rearrange kernfs_node fields to reduce its size on 64bit
Moving .flags and .mode right below .hash makes kernfs_node smaller by 8 bytes on 64bit. To avoid creating a hole from 8 bytes alignment on 32bit archs, .priv is moved below so that there are two 32bit pointers after the 64bit .id field. v2: Updated to avoid size increase on 32bit noticed by Geert. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Link: https://lore.kernel.org/r/ZZ7hwA18nfmFjYpj@slm.duckdns.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
41bccc98fb
commit
1c9f2c7606
@ -206,22 +206,22 @@ struct kernfs_node {
|
||||
|
||||
const void *ns; /* namespace tag */
|
||||
unsigned int hash; /* ns + name hash */
|
||||
unsigned short flags;
|
||||
umode_t mode;
|
||||
|
||||
union {
|
||||
struct kernfs_elem_dir dir;
|
||||
struct kernfs_elem_symlink symlink;
|
||||
struct kernfs_elem_attr attr;
|
||||
};
|
||||
|
||||
void *priv;
|
||||
|
||||
/*
|
||||
* 64bit unique ID. On 64bit ino setups, id is the ino. On 32bit,
|
||||
* the low 32bits are ino and upper generation.
|
||||
*/
|
||||
u64 id;
|
||||
|
||||
unsigned short flags;
|
||||
umode_t mode;
|
||||
void *priv;
|
||||
struct kernfs_iattrs *iattr;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user