From 9fb454ac617f2761f75640eae1751e4c5a9a8e1d Mon Sep 17 00:00:00 2001 From: Matt Benjamin Date: Thu, 8 Oct 2015 13:12:48 -0400 Subject: [PATCH] librgw: return result code from execute_request Update rgw_mkdir and rgw_readdir to use it. Signed-off-by: Matt Benjamin --- src/rgw/rgw_file.cc | 20 ++++++++------------ src/rgw/rgw_lib.h | 4 ++-- src/test/librgw_file.cc | 1 + 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/rgw/rgw_file.cc b/src/rgw/rgw_file.cc index 8b6b41aaac89f..a9a4bd441c6ef 100644 --- a/src/rgw/rgw_file.cc +++ b/src/rgw/rgw_file.cc @@ -144,8 +144,8 @@ int rgw_mkdir(struct rgw_fs *rgw_fs, const char *name, mode_t mode, struct stat *st, struct rgw_file_handle *handle) { - string uri; int rc; + string uri; rc = librgw.get_uri(parent_handle->handle, uri); if (rc < 0 ) { /* invalid parent */ @@ -164,11 +164,9 @@ int rgw_mkdir(struct rgw_fs *rgw_fs, uri += "/"; uri += name; RGWCreateBucketRequest req(cct, fs->get_user(), uri); - (void) librgw.get_fe()->execute_req(&req); - - /* TODO: result */ + rc = librgw.get_fe()->execute_req(&req); - return 0; + return rc; } /* @@ -282,8 +280,8 @@ int rgw_readdir(struct rgw_fs *rgw_fs, const struct rgw_file_handle *parent_handle, uint64_t *offset, rgw_readdir_cb rcb, void *cb_arg, bool *eof) { - string uri; int rc; + string uri; rc = librgw.get_uri(parent_handle->handle, uri); if (rc < 0 ) { /* invalid parent */ @@ -301,23 +299,21 @@ int rgw_readdir(struct rgw_fs *rgw_fs, if (is_root(uri)) { /* for now, root always contains one user's bucket namespace */ RGWListBucketsRequest req(cct, fs->get_user(), rcb, cb_arg, offset); - (void) librgw.get_fe()->execute_req(&req); + rc = librgw.get_fe()->execute_req(&req); } else { /* * bucket? */ uri += "/"; - RGWListBucketRequest req(cct, fs->get_user(), uri, rcb, cb_arg, offset); - (void) librgw.get_fe()->execute_req(&req); + rc = librgw.get_fe()->execute_req(&req); } - /* TODO: result */ - + /* XXXX request MUST set this */ *eof = true; // XXX move into RGGWListBucket(s)Request - return 0; + return rc; } /* diff --git a/src/rgw/rgw_lib.h b/src/rgw/rgw_lib.h index 132288647805f..6bec854efd8f6 100644 --- a/src/rgw/rgw_lib.h +++ b/src/rgw/rgw_lib.h @@ -193,8 +193,8 @@ public: static_cast(pprocess)->enqueue_req(req); // async } - inline void execute_req(RGWLibRequest* req) { - static_cast(pprocess)->process_request(req); // !async + inline int execute_req(RGWLibRequest* req) { + return static_cast(pprocess)->process_request(req); // !async } }; /* RGWLibFrontend */ diff --git a/src/test/librgw_file.cc b/src/test/librgw_file.cc index fe09d0b58ff1b..bd1dae5d46268 100644 --- a/src/test/librgw_file.cc +++ b/src/test/librgw_file.cc @@ -59,6 +59,7 @@ TEST(LibRGW, CREATE_BUCKET) { struct stat st; struct rgw_file_handle fh; int ret = rgw_mkdir(fs, &fs->root_fh, "sorry_dave", 755, &st, &fh); + ASSERT_EQ(ret, 0); } extern "C" { -- 2.39.5