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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jun 2020 15:50:12 +0000 (17:50 +0200)
[ Upstream commit baaa7ebf25c78c5cb712fac16b7f549100beddd3 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/f2fs/super.c

index e36543c..d89c851 100644 (file)
@@ -1230,7 +1230,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) ?