]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: add statfs to C interface
authorYehuda Sadeh <yehuda.sadeh@dreamhost.com>
Mon, 14 Mar 2011 17:20:01 +0000 (10:20 -0700)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Mon, 14 Mar 2011 12:56:49 +0000 (05:56 -0700)
also rename the corresponding C++ method

src/include/rados/librados.h
src/include/rados/librados.hpp
src/librados.cc
src/rados.cc

index aca57fcf77b932c620f854286a581c5e8670db34..ec537c527af172de33024837e75134ca8c5fc167 100644 (file)
@@ -84,6 +84,10 @@ void rados_reopen_log(rados_t cluster);
  * buffer is too short. */
 int rados_conf_get(rados_t cluster, const char *option, char *buf, size_t len);
 
+/* cluster info */
+int rados_statfs(rados_t cluster, struct rados_statfs_t *result);
+
+
 /* pools */
 
 /* Gets a list of pool names as NULL-terminated strings.
index 4a11d868abecee8dda54e8646c92f1856d8ae3ca..08a5ff91139bab8f1959348f31e504ae2736f0b4 100644 (file)
@@ -224,7 +224,7 @@ namespace librados
     int pool_list(std::list<std::string>& v);
     int get_pool_stats(std::list<std::string>& v,
                       std::map<std::string,pool_stat_t>& stats);
-    int get_fs_stats(statfs_t& result);
+    int statfs(statfs_t& result);
 
     // -- aio --
     static AioCompletion *aio_create_completion();
index 6544a7047f58373d1010e6b0e04290fa697fc530..dbc23118a37bb349eff0c294d2553308a00b16d3 100644 (file)
@@ -2476,7 +2476,7 @@ get_pool_stats(std::list<string>& v, std::map<string,pool_stat_t>& result)
 }
 
 int librados::Rados::
-get_fs_stats(statfs_t& result)
+statfs(statfs_t& result)
 {
   ceph_statfs stats;
   int r = client->get_fs_stats(stats);
@@ -2599,6 +2599,20 @@ extern "C" void rados_reopen_log(rados_t cluster)
   sighup_handler(SIGHUP);
 }
 
+/* cluster info */
+extern "C" int rados_statfs(rados_t cluster, rados_statfs_t *result)
+{
+  librados::RadosClient *client = (librados::RadosClient *)cluster;
+
+  ceph_statfs stats;
+  int r = client->get_fs_stats(stats);
+  result->kb = stats.kb;
+  result->kb_used = stats.kb_used;
+  result->kb_avail = stats.kb_avail;
+  result->num_objects = stats.num_objects;
+  return r;
+}
+
 extern "C" int rados_conf_get(rados_t cluster, const char *option, char *buf, size_t len)
 {
   char *tmp = buf;
index bd56effd743e8a7d7a9a77e2d08dcbca73a72a0b..48b9b1d5483e25dd0c83385f10c2fa189b23fa2f 100644 (file)
@@ -217,7 +217,7 @@ int main(int argc, const char **argv)
 
     // total
     statfs_t tstats;
-    rados.get_fs_stats(tstats);
+    rados.statfs(tstats);
     printf("  total used    %12lld %12lld\n", (long long unsigned)tstats.kb_used,
           (long long unsigned)tstats.num_objects);
     printf("  total avail   %12lld\n", (long long unsigned)tstats.kb_avail);