[GFS2] Reduce inode size by moving i_alloc out of line
authorSteven Whitehouse <swhiteho@redhat.com>
Thu, 10 Jan 2008 15:18:55 +0000 (15:18 +0000)
committerSteven Whitehouse <swhiteho@redhat.com>
Fri, 25 Jan 2008 08:18:25 +0000 (08:18 +0000)
commit6dbd822487d0a9f14432cb4680415b80656b63a2
treef0391d598c27cd7c39c67cfa13799a784f4c389a
parentac39aadd0440ae696e6dacaa8006ce1737b17008
[GFS2] Reduce inode size by moving i_alloc out of line

It is possible to reduce the size of GFS2 inodes by taking the i_alloc
structure out of the gfs2_inode. This patch allocates the i_alloc
structure whenever its needed, and frees it afterward. This decreases
the amount of low memory we use at the expense of requiring a memory
allocation for each page or partial page that we write. A quick test
with postmark shows that the overhead is not measurable and I also note
that OCFS2 use the same approach.

In the future I'd like to solve the problem by shrinking down the size
of the members of the i_alloc structure, but for now, this reduces the
immediate problem of using too much low-memory on x86 and doesn't add
too much overhead.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
12 files changed:
fs/gfs2/bmap.c
fs/gfs2/dir.c
fs/gfs2/eattr.c
fs/gfs2/incore.h
fs/gfs2/inode.c
fs/gfs2/main.c
fs/gfs2/ops_address.c
fs/gfs2/ops_file.c
fs/gfs2/ops_inode.c
fs/gfs2/quota.c
fs/gfs2/rgrp.c
fs/gfs2/rgrp.h