]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: update client for statfs changes
authorSage Weil <sage@newdream.net>
Wed, 17 Jun 2009 23:08:21 +0000 (16:08 -0700)
committerSage Weil <sage@newdream.net>
Wed, 17 Jun 2009 23:08:21 +0000 (16:08 -0700)
src/kernel/mon_client.c
src/kernel/super.c

index aed6c8976eb435442ad0d9eb270f5ae13540f2c1..555178719366fd3a25a88206acd3fef466ca2221 100644 (file)
@@ -295,10 +295,7 @@ void ceph_monc_handle_statfs_reply(struct ceph_mon_client *monc,
        mutex_lock(&monc->statfs_mutex);
        req = radix_tree_lookup(&monc->statfs_request_tree, tid);
        if (req) {
-               req->buf->f_total = reply->st.f_total;
-               req->buf->f_free = reply->st.f_free;
-               req->buf->f_avail = reply->st.f_avail;
-               req->buf->f_objects = reply->st.f_objects;
+               *req->buf = reply->st;
                req->result = 0;
        }
        mutex_unlock(&monc->statfs_mutex);
index a8abd654a4bb1c7daec834bb3af8531a82686e8e..f1383f135fc24a682bbea8d12acadcf9917536c9 100644 (file)
@@ -84,11 +84,12 @@ static int ceph_statfs(struct dentry *dentry, struct kstatfs *buf)
         * overflow on 32-bit machines.
         */
        buf->f_bsize = 1 << CEPH_BLOCK_SHIFT;     /* 1 MB */
-       buf->f_blocks = le64_to_cpu(st.f_total) >> (CEPH_BLOCK_SHIFT-10);
-       buf->f_bfree = le64_to_cpu(st.f_free) >> (CEPH_BLOCK_SHIFT-10);
-       buf->f_bavail = le64_to_cpu(st.f_avail) >> (CEPH_BLOCK_SHIFT-10);
+       buf->f_blocks = le64_to_cpu(st.kb) >> (CEPH_BLOCK_SHIFT-10);
+       buf->f_bfree = (le64_to_cpu(st.kb) - le64_to_cpu(st.kb_used)) >>
+               (CEPH_BLOCK_SHIFT-10);
+       buf->f_bavail = le64_to_cpu(st.kb_avail) >> (CEPH_BLOCK_SHIFT-10);
 
-       buf->f_files = le64_to_cpu(st.f_objects);
+       buf->f_files = le64_to_cpu(st.num_objects);
        buf->f_ffree = -1;
        buf->f_namelen = PATH_MAX;
        buf->f_frsize = PAGE_CACHE_SIZE;