This patch relocates some operations to avoid unnecessary execution.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
        int need_update = true;
 
        f2fs_bug_on(F2FS_I_SB(dn->inode), dn->data_blkaddr == NEW_ADDR);
-       fofs = start_bidx_of_node(ofs_of_node(dn->node_page), fi) +
-                                                       dn->ofs_in_node;
 
        /* Update the page address in the parent node */
        __set_data_blkaddr(dn);
        if (is_inode_flag_set(fi, FI_NO_EXTENT))
                return;
 
+       fofs = start_bidx_of_node(ofs_of_node(dn->node_page), fi) +
+                                                       dn->ofs_in_node;
+
        write_lock(&fi->ext.ext_lock);
 
        start_fofs = fi->ext.fofs;
 
        struct nat_entry *e;
        int i;
 
-       memset(&ne, 0, sizeof(struct f2fs_nat_entry));
        ni->nid = nid;
 
        /* Check nat cache */
        if (e)
                return;
 
+       memset(&ne, 0, sizeof(struct f2fs_nat_entry));
+
        /* Check current segment summary */
        mutex_lock(&curseg->curseg_mutex);
        i = lookup_journal_in_cursum(sum, NAT_JOURNAL, nid, 0);