mirror of
https://gitee.com/openharmony/third_party_f2fs-tools
synced 2024-11-26 19:51:32 +00:00
f2fs-tools: set cold flag for non-dir node
Signed-off-by: Wuyun Zhao <zhaowuyun@wingtech.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
895b26e118
commit
712aca364f
@ -522,6 +522,7 @@ static void init_inode_block(struct f2fs_sb_info *sbi,
|
||||
node_blk->footer.nid = cpu_to_le32(de->ino);
|
||||
node_blk->footer.flag = 0;
|
||||
node_blk->footer.cp_ver = ckpt->checkpoint_ver;
|
||||
set_cold_node(node_blk, S_ISDIR(mode));
|
||||
|
||||
if (S_ISDIR(mode)) {
|
||||
make_empty_dir(sbi, node_blk);
|
||||
|
@ -79,6 +79,7 @@ block_t new_node_block(struct f2fs_sb_info *sbi,
|
||||
node_blk->footer.ino = f2fs_inode->footer.ino;
|
||||
node_blk->footer.flag = cpu_to_le32(ofs << OFFSET_BIT_SHIFT);
|
||||
node_blk->footer.cp_ver = ckpt->checkpoint_ver;
|
||||
set_cold_node(node_blk, S_ISDIR(le16_to_cpu(f2fs_inode->i.i_mode)));
|
||||
|
||||
type = CURSEG_COLD_NODE;
|
||||
if (IS_DNODE(node_blk)) {
|
||||
|
11
fsck/node.h
11
fsck/node.h
@ -161,6 +161,17 @@ static inline int is_node(struct f2fs_node *node_blk, int type)
|
||||
return le32_to_cpu(node_blk->footer.flag) & (1 << type);
|
||||
}
|
||||
|
||||
static inline void set_cold_node(struct f2fs_node *rn, bool is_dir)
|
||||
{
|
||||
unsigned int flag = le32_to_cpu(rn->footer.flag);
|
||||
|
||||
if (is_dir)
|
||||
flag &= ~(0x1 << COLD_BIT_SHIFT);
|
||||
else
|
||||
flag |= (0x1 << COLD_BIT_SHIFT);
|
||||
rn->footer.flag = cpu_to_le32(flag);
|
||||
}
|
||||
|
||||
#define is_fsync_dnode(node_blk) is_node(node_blk, FSYNC_BIT_SHIFT)
|
||||
#define is_dent_dnode(node_blk) is_node(node_blk, DENT_BIT_SHIFT)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user