ceph: make f_bsize always equal to f_frsize
authorXiubo Li <xiubli@redhat.com>
Fri, 24 Jun 2022 08:43:49 +0000 (16:43 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 2 Aug 2022 22:54:13 +0000 (00:54 +0200)
The f_frsize maybe changed in the quota size is less than the defualt
4MB.

Signed-off-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/super.c

index 5539f6c..3fc48b4 100644 (file)
@@ -72,15 +72,9 @@ static int ceph_statfs(struct dentry *dentry, struct kstatfs *buf)
        buf->f_type = CEPH_SUPER_MAGIC;  /* ?? */
 
        /*
-        * express utilization in terms of large blocks to avoid
+        * Express utilization in terms of large blocks to avoid
         * overflow on 32-bit machines.
-        *
-        * NOTE: for the time being, we make bsize == frsize to humor
-        * not-yet-ancient versions of glibc that are broken.
-        * Someday, we will probably want to report a real block
-        * size...  whatever that may mean for a network file system!
         */
-       buf->f_bsize = 1 << CEPH_BLOCK_SHIFT;
        buf->f_frsize = 1 << CEPH_BLOCK_SHIFT;
 
        /*
@@ -95,6 +89,14 @@ static int ceph_statfs(struct dentry *dentry, struct kstatfs *buf)
                buf->f_bavail = le64_to_cpu(st.kb_avail) >> (CEPH_BLOCK_SHIFT-10);
        }
 
+       /*
+        * NOTE: for the time being, we make bsize == frsize to humor
+        * not-yet-ancient versions of glibc that are broken.
+        * Someday, we will probably want to report a real block
+        * size...  whatever that may mean for a network file system!
+        */
+       buf->f_bsize = buf->f_frsize;
+
        buf->f_files = le64_to_cpu(st.num_objects);
        buf->f_ffree = -1;
        buf->f_namelen = NAME_MAX;