From patchwork Wed Jul 1 04:38:22 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Tomlinson X-Patchwork-Id: 489861 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 01A84140AF3 for ; Wed, 1 Jul 2015 14:39:16 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=alliedtelesis.co.nz header.i=@alliedtelesis.co.nz header.b=UGEMfwfn; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 92CDE4B61D; Wed, 1 Jul 2015 06:39:14 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PSUWI8nb-XQ2; Wed, 1 Jul 2015 06:39:14 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 2A2CC4B624; Wed, 1 Jul 2015 06:39:05 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id F05064B616 for ; Wed, 1 Jul 2015 06:38:57 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kcz8TSOQBFIA for ; Wed, 1 Jul 2015 06:38:57 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from gate2.alliedtelesis.co.nz (gate2.alliedtelesis.co.nz [202.36.163.20]) by theia.denx.de (Postfix) with ESMTPS id 5BADC4B615 for ; Wed, 1 Jul 2015 06:38:54 +0200 (CEST) Received: from mmarshal3.atlnz.lc (mmarshal3.atlnz.lc [10.32.18.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by gate2.alliedtelesis.co.nz (Postfix) with ESMTPS id 88A18825A0; Wed, 1 Jul 2015 16:38:50 +1200 (NZST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alliedtelesis.co.nz; s=mail; t=1435725530; bh=7slFz4Vj51fD1r4HTGCdO849vhedVX/kXQbK1A2De+0=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=UGEMfwfnuO14jxS9fY/No9VsThWA4LSIzUMIL8ZNUKFmt1yO7x7RKk0N3ceNtFoOZ bps1lzNHvPL0xmduHaQPnHK9sGRPNpgmi7umg8YR9cV8ws/Gg7OoISHubCMqI4ega+ W0oiXjSkGH9QC3gjEU4GxjyC2cxV21gd5FtiG3cI= Received: from smtp (Not Verified[10.32.16.33]) by mmarshal3.atlnz.lc with Trustwave SEG (v7, 3, 0, 7277) id ; Wed, 01 Jul 2015 16:38:46 +1200 Received: from markto-dl.ws.atlnz.lc (markto-dl.ws.atlnz.lc [10.33.24.11]) by smtp (Postfix) with ESMTP id 16F8A13EEF0; Wed, 1 Jul 2015 16:36:23 +1200 (NZST) Received: by markto-dl.ws.atlnz.lc (Postfix, from userid 1155) id 17DD72FFD11; Wed, 1 Jul 2015 16:38:45 +1200 (NZST) From: Mark Tomlinson To: u-boot@lists.denx.de Date: Wed, 1 Jul 2015 16:38:22 +1200 Message-Id: <1435725509-12300-2-git-send-email-mark.tomlinson@alliedtelesis.co.nz> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1435725509-12300-1-git-send-email-mark.tomlinson@alliedtelesis.co.nz> References: <1435725509-12300-1-git-send-email-mark.tomlinson@alliedtelesis.co.nz> Cc: trini@konsulko.com, Mark Tomlinson Subject: [U-Boot] [PATCH v2 1/8] JFFS2: Return early when file read not necessary X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" If a destination is not provided, jffs2_1pass_read_inode() only returns the length of the file. In this case, avoid reading all the data nodes, and return as soon as the length of the file is known. Signed-off-by: Mark Tomlinson --- Changes in v2: - Fix comment style - Remove extra {} pair. fs/jffs2/jffs2_1pass.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c index b1d6470..2e569ff 100644 --- a/fs/jffs2/jffs2_1pass.c +++ b/fs/jffs2/jffs2_1pass.c @@ -719,6 +719,12 @@ jffs2_1pass_read_inode(struct b_lists *pL, u32 inode, char *dest) } put_fl_mem(jNode, pL->readbuf); } + /* + * If no destination is provided, we are done. + * Just return the total size. + */ + if (!dest) + return totalSize; #endif for (b = pL->frag.listHead; b != NULL; b = b->next) {