f2fs: calculate the f2fs_stat_info into base_mem
[sfrench/cifs-2.6.git] / fs / f2fs / debug.c
index de8da9fc5c992b9e2a1cb9bf7add9ee32c294fd6..ef1179df05d90d3525db2b4240400cde9f05b914 100644 (file)
@@ -156,7 +156,11 @@ static void update_mem_info(struct f2fs_sb_info *sbi)
        if (si->base_mem)
                goto get_cache;
 
-       si->base_mem = sizeof(struct f2fs_sb_info) + sbi->sb->s_blocksize;
+       /* build stat */
+       si->base_mem = sizeof(struct f2fs_stat_info);
+
+       /* build superblock */
+       si->base_mem += sizeof(struct f2fs_sb_info) + sbi->sb->s_blocksize;
        si->base_mem += 2 * sizeof(struct f2fs_inode_info);
        si->base_mem += sizeof(*sbi->ckpt);
        si->base_mem += sizeof(struct percpu_counter) * NR_COUNT_TYPE;
@@ -193,6 +197,10 @@ static void update_mem_info(struct f2fs_sb_info *sbi)
        /* build nm */
        si->base_mem += sizeof(struct f2fs_nm_info);
        si->base_mem += __bitmap_size(sbi, NAT_BITMAP);
+       si->base_mem += (NM_I(sbi)->nat_bits_blocks << F2FS_BLKSIZE_BITS);
+       si->base_mem += NM_I(sbi)->nat_blocks * NAT_ENTRY_BITMAP_SIZE;
+       si->base_mem += NM_I(sbi)->nat_blocks / 8;
+       si->base_mem += NM_I(sbi)->nat_blocks * sizeof(unsigned short);
 
 get_cache:
        si->cache_mem = 0;