f2fs: do not re-lookup nat cache with same nid
authorChao Yu <chao2.yu@samsung.com>
Thu, 30 Apr 2015 10:35:50 +0000 (18:35 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 28 May 2015 22:41:41 +0000 (15:41 -0700)
In set_node_addr, we try to lookup cached nat entry of inode and then
set flag in it.

But previously in this function, we have already grabbed nat entry with
current node id, if the node id is the same as the one of inode, we
do not need to lookup it in cache again.

So this patch adds condition judgment for reducing unneeded lookup.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/node.c

index 62982e671d1808f5dc594b3cdbe403764a16fc7f..771725650c0d053b45ad456f28fe8f1b749038a6 100644 (file)
@@ -315,7 +315,8 @@ static void set_node_addr(struct f2fs_sb_info *sbi, struct node_info *ni,
        __set_nat_cache_dirty(nm_i, e);
 
        /* update fsync_mark if its inode nat entry is still alive */
-       e = __lookup_nat_cache(nm_i, ni->ino);
+       if (ni->nid != ni->ino)
+               e = __lookup_nat_cache(nm_i, ni->ino);
        if (e) {
                if (fsync_done && ni->nid == ni->ino)
                        set_nat_flag(e, HAS_FSYNCED_INODE, true);