f2fs: check node id earily when readahead NAT page
PATCH 1/2 f2fs: check node id earily when readahead NAT page
Add node id check in ra_node_page and get_node_page_ra like get_node_page.
--- fs/f2fs/node.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
fs/f2fs/node.c +8 -3
@@ -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); }
Signature · 1 line
2.6.3
Hi Jaegeuk,
This patch adds check for some missing cases in ("f2fs: return early when trying to read null nid "). Merging into that patch or merging separately is ok to me.
Thanks,
Quoted 60 lines
-----Original Message-----
From: Chao Yu [mailto:[email protected]]
Sent: Tuesday, January 05, 2016 4:52 PM
To: Jaegeuk Kim
Cc: [email protected]; [email protected]
Subject: [f2fs-dev] [PATCH 1/2] f2fs: check node id earily when readahead NAT pageAdd node id check in
ra_node_pageandget_node_page_ralikeget_node_page.Signed-off-by Chao Yu <[email protected]>--- fs/f2fs/node.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)fs/f2fs/node.c +8
-4@@ -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
------------------------------------------------------------------------------
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel