add patch forbid-overflowing-inode-code-when-resizing
[ext4-patch-queue.git] / report-delalloc-reserve-as-non-free-in-statfs-for-project-quota
blobd16b4cc0e78d56fac128da1986e8af4fe7df0876
1 ext4: report delalloc reserve as non-free in statfs for project quota
3 From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
5 This reserved space isn't committed yet but cannot be used for allocations.
6 For userspace it has no difference from used space. XFS already does this.
8 Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
9 Signed-off-by: Theodore Ts'o <tytso@mit.edu>
10 Reviewed-by: Jan Kara <jack@suse.cz>
11 Fixes: 689c958cbe6b ("ext4: add project quota support")
12 ---
13  fs/ext4/super.c |    3 ++-
14  1 file changed, 2 insertions(+), 1 deletion(-)
16 diff --git a/fs/ext4/super.c b/fs/ext4/super.c
17 index 5de959fb0244..13ce97b9e820 100644
18 --- a/fs/ext4/super.c
19 +++ b/fs/ext4/super.c
20 @@ -5227,7 +5227,8 @@ static int ext4_statfs_project(struct super_block *sb,
21                  dquot->dq_dqb.dqb_bsoftlimit :
22                  dquot->dq_dqb.dqb_bhardlimit) >> sb->s_blocksize_bits;
23         if (limit && buf->f_blocks > limit) {
24 -               curblock = dquot->dq_dqb.dqb_curspace >> sb->s_blocksize_bits;
25 +               curblock = (dquot->dq_dqb.dqb_curspace +
26 +                           dquot->dq_dqb.dqb_rsvspace) >> sb->s_blocksize_bits;
27                 buf->f_blocks = limit;
28                 buf->f_bfree = buf->f_bavail =
29                         (buf->f_blocks > curblock) ?