aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk.kim@samsung.com>2013-05-19 20:42:28 -0400
committerJaegeuk Kim <jaegeuk.kim@samsung.com>2013-05-28 02:03:01 -0400
commit1646cfac952ff87fcbc18a77164472aa61d08094 (patch)
tree5ec3a1a864e8067d9b16a6f11df3177b18207cab /fs/f2fs
parent0a364af18f27b86869149c4d128262ec1e0ccb25 (diff)
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')
-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 96415345a428..f63f0a4046c6 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)
408 level = get_node_path(index, offset, noffset); 408 level = get_node_path(index, offset, noffset);
409 409
410 nids[0] = dn->inode->i_ino; 410 nids[0] = dn->inode->i_ino;
411 npage[0] = get_node_page(sbi, nids[0]); 411 npage[0] = dn->inode_page;
412 if (IS_ERR(npage[0]))
413 return PTR_ERR(npage[0]);
414 412
413 if (!npage[0]) {
414 npage[0] = get_node_page(sbi, nids[0]);
415 if (IS_ERR(npage[0]))
416 return PTR_ERR(npage[0]);
417 }
415 parent = npage[0]; 418 parent = npage[0];
416 if (level != 0) 419 if (level != 0)
417 nids[1] = get_nid(parent, offset[0], true); 420 nids[1] = get_nid(parent, offset[0], true);