f2fs: report delalloc reserve as non-free in statfs for project quota
authorKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
Mon, 11 May 2020 06:15:18 +0000 (09:15 +0300)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 12 May 2020 03:36:47 +0000 (20:36 -0700)
This reserved space isn't committed yet but cannot be used for
allocations. For userspace it has no difference from used space.

See the same fix in ext4 commit f06925c73942 ("ext4: report delalloc
reserve as non-free in statfs for project quota").

Fixes: ddc34e328d06 ("f2fs: introduce f2fs_statfs_project")
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/super.c

index 582bbf4..f6c5c7e 100644 (file)
@@ -1283,7 +1283,8 @@ static int f2fs_statfs_project(struct super_block *sb,
                limit >>= sb->s_blocksize_bits;
 
        if (limit && buf->f_blocks > limit) {
-               curblock = dquot->dq_dqb.dqb_curspace >> sb->s_blocksize_bits;
+               curblock = (dquot->dq_dqb.dqb_curspace +
+                           dquot->dq_dqb.dqb_rsvspace) >> sb->s_blocksize_bits;
                buf->f_blocks = limit;
                buf->f_bfree = buf->f_bavail =
                        (buf->f_blocks > curblock) ?