* [PATCH] Fix inode list allocation size in writeback.
@ 2008-05-16 10:06 David Chinner
2008-05-16 10:41 ` Christoph Hellwig
0 siblings, 1 reply; 2+ messages in thread
From: David Chinner @ 2008-05-16 10:06 UTC (permalink / raw)
To: xfs-dev; +Cc: xfs-oss
We only need to allocate space for the number of inodes in
the cluster when writing back inodes, not every byte in the
inode cluster. This reduces the amount of memory needing to
be allocated to 256 bytes instead of 64k.
Somebody pass me the brown paper bag, please.
Signed-off-by: Dave Chinner <dgc@sgi.com>
---
fs/xfs/xfs_inode.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
Index: 2.6.x-xfs-new/fs/xfs/xfs_inode.c
===================================================================
--- 2.6.x-xfs-new.orig/fs/xfs/xfs_inode.c 2008-05-16 19:43:55.000000000 +1000
+++ 2.6.x-xfs-new/fs/xfs/xfs_inode.c 2008-05-16 19:47:47.778141722 +1000
@@ -2913,6 +2913,7 @@ xfs_iflush_cluster(
xfs_mount_t *mp = ip->i_mount;
xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino);
unsigned long first_index, mask;
+ unsigned long inodes_per_cluster;
int ilist_size;
xfs_inode_t **ilist;
xfs_inode_t *iq;
@@ -2924,7 +2925,8 @@ xfs_iflush_cluster(
ASSERT(pag->pagi_inodeok);
ASSERT(pag->pag_ici_init);
- ilist_size = XFS_INODE_CLUSTER_SIZE(mp) * sizeof(xfs_inode_t *);
+ inodes_per_cluster = XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog;
+ ilist_size = inodes_per_cluster * sizeof(xfs_inode_t *);
ilist = kmem_alloc(ilist_size, KM_MAYFAIL|KM_NOFS);
if (!ilist)
return 0;
@@ -2934,8 +2936,7 @@ xfs_iflush_cluster(
read_lock(&pag->pag_ici_lock);
/* really need a gang lookup range call here */
nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, (void**)ilist,
- first_index,
- XFS_INODE_CLUSTER_SIZE(mp));
+ first_index, inodes_per_cluster);
if (nr_found == 0)
goto out_free;
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] Fix inode list allocation size in writeback.
2008-05-16 10:06 [PATCH] Fix inode list allocation size in writeback David Chinner
@ 2008-05-16 10:41 ` Christoph Hellwig
0 siblings, 0 replies; 2+ messages in thread
From: Christoph Hellwig @ 2008-05-16 10:41 UTC (permalink / raw)
To: David Chinner; +Cc: xfs-dev, xfs-oss
On Fri, May 16, 2008 at 08:06:57PM +1000, David Chinner wrote:
> We only need to allocate space for the number of inodes in
> the cluster when writing back inodes, not every byte in the
> inode cluster. This reduces the amount of memory needing to
> be allocated to 256 bytes instead of 64k.
>
> Somebody pass me the brown paper bag, please.
Looks good, and I'll happily pass on my brown paper bag :)
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-05-16 10:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-16 10:06 [PATCH] Fix inode list allocation size in writeback David Chinner
2008-05-16 10:41 ` Christoph Hellwig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox