aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs/node.c
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk.kim@samsung.com>2013-05-20 09:42:28 +0900
committerAndreas Blaesius <skate4life@gmx.de>2016-06-05 21:20:19 +0200
commit4a8f10cc4a630546244a41dd1d020b83eb92d3e2 (patch)
tree89675c27da516188a47d27f27ea05cdcc33d9514 /fs/f2fs/node.c
parent68019948a01e396b2e48da7f2845f2b2f7af1f39 (diff)
downloadkernel_samsung_espresso10-4a8f10cc4a630546244a41dd1d020b83eb92d3e2.zip
kernel_samsung_espresso10-4a8f10cc4a630546244a41dd1d020b83eb92d3e2.tar.gz
kernel_samsung_espresso10-4a8f10cc4a630546244a41dd1d020b83eb92d3e2.tar.bz2
f2fs: skip get_node_page if locked node page is passed
If get_dnode_of_data gets a locked node page, let's skip redundant get_node_page calls. This is for the futher enhancement. Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Diffstat (limited to 'fs/f2fs/node.c')
-rw-r--r--fs/f2fs/node.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 9641534..f63f0a4 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -408,10 +408,13 @@ int get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode)
level = get_node_path(index, offset, noffset);
nids[0] = dn->inode->i_ino;
- npage[0] = get_node_page(sbi, nids[0]);
- if (IS_ERR(npage[0]))
- return PTR_ERR(npage[0]);
+ npage[0] = dn->inode_page;
+ if (!npage[0]) {
+ npage[0] = get_node_page(sbi, nids[0]);
+ if (IS_ERR(npage[0]))
+ return PTR_ERR(npage[0]);
+ }
parent = npage[0];
if (level != 0)
nids[1] = get_nid(parent, offset[0], true);