f2fs: add the missing delection of orphan inode entry in write_orphan_inodes()
PATCH 1/1 f2fs: add the missing delection of orphan inode entry in write_orphan_inodes()
After writing orphan inode entry in jornal block, we need to delete each entry from the orphan entry list, and release them.
--- fs/f2fs/checkpoint.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
fs/f2fs/checkpoint.c +4 -0
@@ -337,6 +337,10 @@ static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t start_blk)memset (orphan_blk,0 ,sizeof (*orphan_blk)); page_exist: orphan_blk->ino[nentries++] =cpu_to_le32 (orphan->ino); + +list_del (&orphan->list); +kmem_cache_free (orphan_entry_slab, orphan); + sbi->n_orphans--; }if (!page) goto end;
Signature · 1 line
1.7.7
Jaegeuk Kim
NAKHi,
2013-07-19 (금), 16:18 +0800, Gu Zheng:
Quoted 14 lines
After writing orphan inode entry in jornal block, we need to delete each entry from the orphan entry list, and release them.
Signed-off-by Gu Zheng <[email protected]>--- fs/f2fs/checkpoint.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)fs/f2fs/checkpoint.c +0
-0
fs/f2fs/checkpoint.c static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t start_blk) · line 343
Quoted 7 lines
fs/f2fs/checkpoint.c +4
-0@@ -337,6 +337,10 @@ static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t start_blk)memset (orphan_blk,0 ,sizeof (*orphan_blk)); page_exist: orphan_blk->ino[nentries++] =cpu_to_le32 (orphan->ino); + +list_del (&orphan->list); +kmem_cache_free (orphan_entry_slab, orphan); + sbi->n_orphans--;
NAK.
We should not release them here.
Only f2fs_evict_inode can do it.
Quoted 3 lines
fs/f2fs/checkpoint.c +0
-0}if (!page) goto end;
Signature · 2 lines
Jaegeuk Kim Samsung
Quoted 12 lines · Jaegeuk Kim
Hi,
2013-07-19 (금), 16:18 +0800, Gu Zheng:
Quoted 9 lines
After writing orphan inode entry in jornal block, we need to delete each entry from the orphan entry list, and release them.
Signed-off-by Gu Zheng <[email protected]>--- fs/f2fs/checkpoint.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
Quoted 16 lines
fs/f2fs/checkpoint.c static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t start_blk) · line 343
Quoted 12 lines
fs/f2fs/checkpoint.c +4
-0@@ -337,6 +337,10 @@ static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t start_blk)memset (orphan_blk,0 ,sizeof (*orphan_blk)); page_exist: orphan_blk->ino[nentries++] =cpu_to_le32 (orphan->ino); + +list_del (&orphan->list); +kmem_cache_free (orphan_entry_slab, orphan); + sbi->n_orphans--;NAK.
We should not release them here.
Onlyf2fs_evict_inodecan do it.
Yeah, f2fs_evict_inode can do this job safely, sorry for my mistake, please ignore this patch.:)
Regards,
Gu
Quoted 5 lines
Quoted 4 lines
fs/f2fs/checkpoint.c +0
-0}if (!page) goto end;