Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934311AbcCKDhc (ORCPT ); Thu, 10 Mar 2016 22:37:32 -0500 Received: from lucky1.263xmail.com ([211.157.147.132]:57252 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934111AbcCKDh1 (ORCPT ); Thu, 10 Mar 2016 22:37:27 -0500 X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-ADDR-CHECKED: 0 X-RL-SENDER: shawn.lin@rock-chips.com X-FST-TO: jaegeuk@kernel.org X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: shawn.lin@rock-chips.com X-UNIQUE-TAG: <63341ad0077ecc1998c5f6b9dd71ef09> X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 From: Shawn Lin To: Jaegeuk Kim Cc: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, Shawn Lin Subject: [PATCH 8/8] f2fs: check inline flag ahead for get_dnode_of_data Date: Fri, 11 Mar 2016 11:29:23 +0800 Message-Id: <1457666963-14641-1-git-send-email-shawn.lin@rock-chips.com> X-Mailer: git-send-email 1.8.0 In-Reply-To: <1457666880-14311-1-git-send-email-shawn.lin@rock-chips.com> References: <1457666880-14311-1-git-send-email-shawn.lin@rock-chips.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1132 Lines: 42 Check inline data flag ahead, so we can save some cpu cycle. Signed-off-by: Shawn Lin --- fs/f2fs/node.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 771166d..69467bd 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -534,6 +534,11 @@ int get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode) int err = 0; level = get_node_path(dn->inode, index, offset, noffset); + /* if inline_data is set, should not report any block indices */ + if (f2fs_has_inline_data(dn->inode) && index) { + err = -ENOENT; + goto release_out; + } nids[0] = dn->inode->i_ino; npage[0] = dn->inode_page; @@ -544,13 +549,6 @@ int get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode) return PTR_ERR(npage[0]); } - /* if inline_data is set, should not report any block indices */ - if (f2fs_has_inline_data(dn->inode) && index) { - err = -ENOENT; - f2fs_put_page(npage[0], 1); - goto release_out; - } - parent = npage[0]; if (level != 0) nids[1] = get_nid(parent, offset[0], true); -- 2.3.7