cp_payload is introduced for sit bitmap to support large volume, and it is 
just after the block of f2fs_checkpoint + nat bitmap, so the first segment 
should include F2FS_CP_PACKS + NR_CURSEG_TYPE + cp_payload + orphan blocks. 
However, current max orphan inodes calculation don't consider cp_payload, 
this patch fix it by reducing the number of cp_payload from total blocks of 
the first segment when calculate max orphan inodes.

Signed-off-by: Wanpeng Li <[email protected]>
---
 fs/f2fs/checkpoint.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index db82e09..3c9d677 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -1109,7 +1109,7 @@ void init_ino_entry_info(struct f2fs_sb_info *sbi)
         * for cp pack we can have max 1020*504 orphan entries
         */
        sbi->max_orphans = (sbi->blocks_per_seg - F2FS_CP_PACKS -
-                       NR_CURSEG_TYPE) * F2FS_ORPHANS_PER_BLOCK;
+                       NR_CURSEG_TYPE - __cp_payload(sbi)) * 
F2FS_ORPHANS_PER_BLOCK;
 }
 
 int __init create_checkpoint_caches(void)
-- 
1.9.1


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to