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....@samsung.com>
---
 fs/f2fs/node.c | 9 ++++++---
 1 file 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);
-- 
1.8.1.3.566.gaa39828

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to