From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751892AbcAEIwR (ORCPT ); Tue, 5 Jan 2016 03:52:17 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:39701 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751371AbcAEIwP (ORCPT ); Tue, 5 Jan 2016 03:52:15 -0500 X-AuditID: cbfee61b-f793c6d00000236c-c4-568b843d3b2b From: Chao Yu To: Jaegeuk Kim Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] f2fs: check node id earily when readahead NAT page Date: Tue, 05 Jan 2016 16:51:33 +0800 Message-id: <009e01d14796$5f09a870$1d1cf950$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: AdFHljumCEsGu1/aRQurybdcYe5Onw== Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFLMWRmVeSWpSXmKPExsVy+t9jAV3blu4wgwc9UhZP1s9itri0yN3i 8q45bA7MHptWdbJ57F7wmcnj8ya5AOYoLpuU1JzMstQifbsErozefVYFLzkrli5/wdbA+Iq9 i5GTQ0LAROJs7ywmCFtM4sK99WxdjFwcQgJLGSVWHfnCBOG8YpTY/vUuM0gVm4CKxPKO/2Ad IkD2oUWXwSYxC3hINHZ8ZwWxhQXcJT5N+8sGYrMIqEosPX4XLM4rYClxsXkDC4QtKPFj8j0W iF4tifU7jzNB2PISm9e8ZYa4SEFix9nXjF2MHEC79CSOfRKGKBGX2HjkFssERoFZSCbNQjJp FpJJs5C0LGBkWcUokVqQXFCclJ5rlJdarlecmFtcmpeul5yfu4kRHMLPpHcwHt7lfohRgINR iYeX42VXmBBrYllxZe4hRgkOZiURXsHC7jAh3pTEyqrUovz4otKc1OJDjNIcLErivPsuRYYJ CaQnlqRmp6YWpBbBZJk4OKUaGGWPFz9OmniwVzrsWNc7PREdk4rzL14Fni/pnHZ3101Tm1uH j0xbt3in1C+hBWHHL2+4ffoYc0/ys/+dEZND/fsXm6y5ahPKLb7qfZNv9Z9c3Tk+k/UjVt8K 28Luz70z+PA0j9jFSyrtgw03dUftULRYzsvV41Glx3ZQPKYhLDG0+kFD7ALfKiWW4oxEQy3m ouJEAAK8r8FdAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add node id check in ra_node_page and get_node_page_ra like get_node_page. Signed-off-by: Chao Yu --- fs/f2fs/node.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 6d5f548..c1ddf3d 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1041,6 +1041,10 @@ void ra_node_page(struct f2fs_sb_info *sbi, nid_t nid) struct page *apage; int err; + if (!nid) + return; + f2fs_bug_on(sbi, check_nid_range(sbi, nid)); + apage = find_get_page(NODE_MAPPING(sbi), nid); if (apage && PageUptodate(apage)) { f2fs_put_page(apage, 0); @@ -1108,6 +1112,7 @@ struct page *get_node_page_ra(struct page *parent, int start) nid = get_nid(parent, start, false); if (!nid) return ERR_PTR(-ENOENT); + f2fs_bug_on(sbi, check_nid_range(sbi, nid)); repeat: page = grab_cache_page(NODE_MAPPING(sbi), nid); if (!page) @@ -1127,9 +1132,9 @@ repeat: end = start + MAX_RA_NODE; end = min(end, NIDS_PER_BLOCK); for (i = start + 1; i < end; i++) { - nid_t tnid = get_nid(parent, i, false); - if (!tnid) - continue; + nid_t tnid; + + tnid = get_nid(parent, i, false); ra_node_page(sbi, tnid); } -- 2.6.3