diff options
author | Chengguang Xu <cgxu519@mykernel.net> | 2020-01-04 22:20:03 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-02-14 16:32:12 -0500 |
commit | 646b25533fed46c0e9cc3fec4cb3c77302d74825 (patch) | |
tree | ddb7cceac3ede24174ef155d05f50a880190bb5f /fs/f2fs | |
parent | 182f211e1160ab75ee889a19e72b3acb8a58ab81 (diff) | |
download | linux-stable-646b25533fed46c0e9cc3fec4cb3c77302d74825.tar.gz linux-stable-646b25533fed46c0e9cc3fec4cb3c77302d74825.tar.bz2 linux-stable-646b25533fed46c0e9cc3fec4cb3c77302d74825.zip |
f2fs: fix miscounted block limit in f2fs_statfs_project()
commit acdf2172172a511f97fa21ed0ee7609a6d3b3a07 upstream.
statfs calculates Total/Used/Avail disk space in block unit,
so we should translate soft/hard prjquota limit to block unit
as well.
Below testing result shows the block/inode numbers of
Total/Used/Avail from df command are all correct afer
applying this patch.
[root@localhost quota-tools]\# ./repquota -P /dev/sdb1
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/super.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 8635df6cba55..26849250b36b 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -918,6 +918,8 @@ static int f2fs_statfs_project(struct super_block *sb, if (dquot->dq_dqb.dqb_bhardlimit && (!limit || dquot->dq_dqb.dqb_bhardlimit < limit)) limit = dquot->dq_dqb.dqb_bhardlimit; + if (limit) + limit >>= sb->s_blocksize_bits; if (limit && buf->f_blocks > limit) { curblock = dquot->dq_dqb.dqb_curspace >> sb->s_blocksize_bits; |