Re: Reporting disk usage with df on F2FS over loop device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 12, 2012 at 8:07 AM, Jaegeuk Kim <jaegeuk.kim@xxxxxxxxxxx> wrote:
> I found a bug there.
> Could you test the following patch?
> Thanks, :)
>
> ---
> From 44849048bd1173ac6e83cb01d426dc5109922064 Mon Sep 17 00:00:00 2001
> From: Jaegeuk Kim <jaegeuk.kim@xxxxxxxxxxx>
> Date: Wed, 12 Dec 2012 19:45:49 +0900
> Subject: [PATCH] f2fs: fix wrong calculation on f_files in statfs
>
> In f2fs_statfs(), f_files should be the total number of available inodes
> instead of the currently allocated inodes.
> So, this patch should resolve the reported bug below.
>
> Note that, showing 10% usage is not a bug, since f2fs reveals whole
> volume size
> as much as possible and shows the space overhead as *used*.
> This policy is fair enough with respect to other file systems.
>
> <Reported Bug>
> (loop0 is backed by 1GiB file)
>
> $ mkfs.f2fs /dev/loop0
>
> F2FS-tools: Ver: 1.1.0 (2012-12-11)
> Info: sector size = 512
> Info: total sectors = 2097152 (in 512bytes)
> Info: zone aligned segment0 blkaddr: 512
> Info: format successful
>
> $ mount /dev/loop0 mnt/
>
> $ df mnt/
> Filesystem     1K-blocks  Used Available Use% Mounted on
> /dev/loop0       1046528 98312    929784  10%
> /home/zeta/linux-devel/mtd-bench/mnt
>
> $ df mnt/ -i
> Filesystem     Inodes   IUsed  IFree IUse% Mounted on
> /dev/loop0       1 -465918 465919
> - /home/zeta/linux-devel/mtd-bench/mnt
>
> Notice IUsed is negative. Also, 10% usage on a fresh f2fs seems too
> much to be correct.
>
> Reported-by: Ezequiel Garcia <elezegarcia@xxxxxxxxx>
> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@xxxxxxxxxxx>
> ---
>  fs/f2fs/super.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
> index 1386732..f4d9e03 100644
> --- a/fs/f2fs/super.c
> +++ b/fs/f2fs/super.c
> @@ -148,8 +148,8 @@ static int f2fs_statfs(struct dentry *dentry, struct
> kstatfs *buf)
>         buf->f_bfree = buf->f_blocks - valid_user_blocks(sbi) - ovp_count;
>         buf->f_bavail = user_block_count - valid_user_blocks(sbi);
>
> -       buf->f_files = valid_inode_count(sbi);
> -       buf->f_ffree = sbi->total_node_count - valid_node_count(sbi);
> +       buf->f_files = sbi->total_node_count;
> +       buf->f_ffree = sbi->total_node_count - valid_inode_count(sbi);
>
>         buf->f_namelen = F2FS_MAX_NAME_LEN;
>         buf->f_fsid.val[0] = (u32)id;
> --
> 1.8.0.1.250.gb7973fb
>
>
>
> --

With patch:
$ df -i /mnt/
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/loop0     465920     1 465919    1% /mnt

Tested-by: Ezequiel Garcia <elezegarcia@xxxxxxxxx>

Question:
I'm just creating test-only f2fs images. If I create a very small image,
100 MiB, overhead is 60%. Is that also correct?

Thanks,

    Ezequiel
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux