From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aaron Pace Date: Mon, 26 Jul 2010 14:24:44 -0600 Subject: [U-Boot] [PATCH] ext2fs: Fix optimization bug for doubly-indirect block pointers In-Reply-To: <4C4DEEC7.7010105@alcatel-lucent.com> References: <4C4DE8DC.4020500@alcatel-lucent.com> <4C4DEEC7.7010105@alcatel-lucent.com> Message-ID: <4C4DEF0C.3020102@alcatel-lucent.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Apologies for the oversight, here's the non line-wrapped version. Fix optimization bug for doubly-indirect block pointers Doubly-indirect block numbers are compared against the first-level indirect block when checking for a cached copy. This is causing the doubly-indirect block to be re-read each time it is accessed. Repairing this reduces load time for a 70M file from 72 seconds to 38 seconds. Signed-off-by: Aaron Pace --- fs/ext2/ext2fs.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/ext2/ext2fs.c b/fs/ext2/ext2fs.c index 4b391d6..a88cf87 100644 --- a/fs/ext2/ext2fs.c +++ b/fs/ext2/ext2fs.c @@ -364,7 +364,7 @@ static int ext2fs_read_block (ext2fs_node_t node, int fileblock) { indir2_size = blksz; } if ((__le32_to_cpu (indir1_block[rblock / perblock]) << - log2_blksz) != indir1_blkno) { + log2_blksz) != indir2_blkno) { status = ext2fs_devread (__le32_to_cpu(indir1_block[rblock / perblock]) << log2_blksz, 0, blksz, (char *) indir2_block); -- 1.5.4.3