diff options
author | Kotresh HR <khiremat@redhat.com> | 2021-11-10 21:00:21 +0300 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2022-01-13 15:40:06 +0300 |
commit | 8e55ba8caae5cd380b1c9c81a426602a667e110e (patch) | |
tree | 34504e35db1145d0a16e17f87e1babd53c1f2608 /fs/ceph/super.h | |
parent | adbed05ed62d1f3b6f6c5cb88ec52c1ffafc0fd9 (diff) | |
download | linux-8e55ba8caae5cd380b1c9c81a426602a667e110e.tar.xz |
ceph: Fix incorrect statfs report for small quota
Problem:
The statfs reports incorrect free/available space for quota less then
CEPH_BLOCK size (4M).
Solution:
For quota less than CEPH_BLOCK size, smaller block size of 4K is used.
But if quota is less than 4K, it is decided to go with binary use/free
of 4K block. For quota size less than 4K size, report the
total=used=4K,free=0 when quota is full and total=free=4K,used=0
otherwise.
Signed-off-by: Kotresh HR <khiremat@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/super.h')
-rw-r--r-- | fs/ceph/super.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ceph/super.h b/fs/ceph/super.h index ec6b221e5b62..533189b537b2 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h @@ -32,6 +32,7 @@ * large volume sizes on 32-bit machines. */ #define CEPH_BLOCK_SHIFT 22 /* 4 MB */ #define CEPH_BLOCK (1 << CEPH_BLOCK_SHIFT) +#define CEPH_4K_BLOCK_SHIFT 12 /* 4 KB */ #define CEPH_MOUNT_OPT_CLEANRECOVER (1<<1) /* auto reonnect (clean mode) after blocklisted */ #define CEPH_MOUNT_OPT_DIRSTAT (1<<4) /* `cat dirname` for stats */ |