nid_t ino, unsigned int ofs, bool reset)
 {
        struct f2fs_node *rn = F2FS_NODE(page);
+       unsigned int old_flag = 0;
+
        if (reset)
                memset(rn, 0, sizeof(*rn));
+       else
+               old_flag = le32_to_cpu(rn->footer.flag);
+
        rn->footer.nid = cpu_to_le32(nid);
        rn->footer.ino = cpu_to_le32(ino);
-       rn->footer.flag = cpu_to_le32(ofs << OFFSET_BIT_SHIFT);
+
+       /* should remain old flag bits such as COLD_BIT_SHIFT */
+       rn->footer.flag = cpu_to_le32((ofs << OFFSET_BIT_SHIFT) |
+                                       (old_flag & OFFSET_BIT_MASK));
 }
 
 static inline void copy_node_footer(struct page *dst, struct page *src)