diff options
author | John Wilkins <john.wilkins@inktank.com> | 2013-05-09 12:49:59 -0700 |
---|---|---|
committer | John Wilkins <john.wilkins@inktank.com> | 2013-05-09 12:49:59 -0700 |
commit | c55c6abb6055ff7983dd7b1b7c7903e8b08e23b4 (patch) | |
tree | cddead6fe49df7f61286b205b08eee7db246ef9d | |
parent | 270ca6232d297af53ddbb79543e604c514adb92e (diff) | |
parent | c19146163632b1125b5df9ae573fb654606a57c8 (diff) | |
download | ceph-c55c6abb6055ff7983dd7b1b7c7903e8b08e23b4.tar.gz |
Merge branch 'master' of https://github.com/ceph/ceph
-rw-r--r-- | src/librbd/librbd.cc | 6 | ||||
-rw-r--r-- | src/mds/MDCache.cc | 5 | ||||
-rw-r--r-- | src/mon/Monitor.cc | 1 | ||||
-rw-r--r-- | src/os/FileStore.cc | 2 | ||||
-rw-r--r-- | src/osd/OSD.cc | 2 | ||||
-rw-r--r-- | src/rados.cc | 12 | ||||
-rw-r--r-- | src/rbd.cc | 5 | ||||
-rw-r--r-- | src/rgw/rgw_admin.cc | 10 | ||||
-rw-r--r-- | src/rgw/rgw_bucket.h | 2 | ||||
-rw-r--r-- | src/rgw/rgw_rados.cc | 9 | ||||
-rw-r--r-- | src/rgw/rgw_user.cc | 18 | ||||
-rw-r--r-- | src/tools/ceph-filestore-dump.cc | 12 |
12 files changed, 52 insertions, 32 deletions
diff --git a/src/librbd/librbd.cc b/src/librbd/librbd.cc index 9513e1e5f2c..89bbe595752 100644 --- a/src/librbd/librbd.cc +++ b/src/librbd/librbd.cc @@ -692,7 +692,8 @@ extern "C" int rbd_open(rados_ioctx_t p, const char *name, rbd_image_t *image, librbd::ImageCtx *ictx = new librbd::ImageCtx(name, "", snap_name, io_ctx, false); int r = librbd::open_image(ictx); - *image = (rbd_image_t)ictx; + if (r >= 0) + *image = (rbd_image_t)ictx; return r; } @@ -704,7 +705,8 @@ extern "C" int rbd_open_read_only(rados_ioctx_t p, const char *name, librbd::ImageCtx *ictx = new librbd::ImageCtx(name, "", snap_name, io_ctx, true); int r = librbd::open_image(ictx); - *image = (rbd_image_t)ictx; + if (r >= 0) + *image = (rbd_image_t)ictx; return r; } diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 9df91b47961..191d04d6e6e 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -10869,7 +10869,7 @@ void MDCache::dump_cache(const char *fn) string t = tt.str(); r = safe_write(fd, t.c_str(), t.length()); if (r < 0) - return; + goto out; for (CDir::map_t::iterator q = dir->items.begin(); q != dir->items.end(); @@ -10880,12 +10880,13 @@ void MDCache::dump_cache(const char *fn) string u = uu.str(); r = safe_write(fd, u.c_str(), u.length()); if (r < 0) - return; + goto out; } dir->check_rstats(); } } + out: ::close(fd); } diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 56cd291cd24..376b670bbdc 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -2624,6 +2624,7 @@ void Monitor::handle_command(MMonCommand *m) } else if (string(args[0]) == "df") { if (args.size() > 1) { if (string(args[1]) != "detail") { + delete jf; r = -EINVAL; rs = "usage: df [detail]"; goto out; diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 140289babc4..332019b68cc 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -4015,7 +4015,7 @@ int FileStore::_setattrs(coll_t cid, const hobject_t& oid, map<string,bufferptr> r = _fsetattrs(fd, inline_to_set); if (r < 0) - return r; + goto out_close; if (!omap_remove.empty()) { assert(g_conf->filestore_xattr_use_omap); diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index d27a3b51a3c..c812e1326b6 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -170,6 +170,7 @@ OSDService::OSDService(OSD *osd) : scrubs_active(0), watch_lock("OSD::watch_lock"), watch_timer(osd->client_messenger->cct, watch_lock), + next_notif_id(0), backfill_request_lock("OSD::backfill_request_lock"), backfill_request_timer(g_ceph_context, backfill_request_lock, false), last_tid(0), @@ -905,6 +906,7 @@ OSD::OSD(int id, Messenger *internal_messenger, Messenger *external_messenger, heartbeat_dispatcher(this), stat_lock("OSD::stat_lock"), finished_lock("OSD::finished_lock"), + test_ops_hook(NULL), op_wq(this, g_conf->osd_op_thread_timeout, &op_tp), peering_wq(this, g_conf->osd_op_thread_timeout, &op_tp, 200), map_lock("OSD::map_lock"), diff --git a/src/rados.cc b/src/rados.cc index 8d06d2fa593..69a97a91748 100644 --- a/src/rados.cc +++ b/src/rados.cc @@ -192,25 +192,28 @@ static int do_get(IoCtx& io_ctx, const char *objname, const char *outfile, unsig } uint64_t offset = 0; + int ret; while (true) { bufferlist outdata; - int ret = io_ctx.read(oid, outdata, op_size, offset); + ret = io_ctx.read(oid, outdata, op_size, offset); if (ret <= 0) { - return ret; + goto out; } ret = outdata.write_fd(fd); if (ret < 0) { cerr << "error writing to file: " << cpp_strerror(ret) << std::endl; - return ret; + goto out; } if (outdata.length() < op_size) break; offset += outdata.length(); } + ret = 0; + out: if (fd != 1) TEMP_FAILURE_RETRY(::close(fd)); - return 0; + return ret; } static int do_copy(IoCtx& io_ctx, const char *objname, IoCtx& target_ctx, const char *target_obj) @@ -412,6 +415,7 @@ static int do_put(IoCtx& io_ctx, const char *objname, const char *infile, int op ret = 0; out: TEMP_FAILURE_RETRY(close(fd)); + delete[] buf; return ret; } diff --git a/src/rbd.cc b/src/rbd.cc index 044442eb33b..79860c2d772 100644 --- a/src/rbd.cc +++ b/src/rbd.cc @@ -1301,7 +1301,7 @@ static int do_import(librbd::RBD &rbd, librados::IoCtx& io_ctx, if (fd < 0) { r = -errno; cerr << "rbd: error opening " << path << std::endl; - return r; + goto done2; } r = fstat(fd, &stat_buf); @@ -1394,7 +1394,8 @@ static int do_import(librbd::RBD &rbd, librados::IoCtx& io_ctx, pc.finish(); close(fd); } - + done2: + delete[] p; return r; } diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index edbe887c208..fff32ca435d 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -399,24 +399,26 @@ static int read_input(const string& infile, bufferlist& bl) #define READ_CHUNK 8196 int r; + int err; do { char buf[READ_CHUNK]; r = read(fd, buf, READ_CHUNK); if (r < 0) { - int err = -errno; + err = -errno; cerr << "error while reading input" << std::endl; - return err; + goto out; } bl.append(buf, r); } while (r > 0); + err = 0; + out: if (infile.size()) { close(fd); } - - return 0; + return err; } template <class T> diff --git a/src/rgw/rgw_bucket.h b/src/rgw/rgw_bucket.h index 9eb16cf3707..e2f4d5eee40 100644 --- a/src/rgw/rgw_bucket.h +++ b/src/rgw/rgw_bucket.h @@ -173,7 +173,7 @@ class RGWBucket private: public: - RGWBucket() : store(NULL), failure(false) {} + RGWBucket() : store(NULL), handle(NULL), failure(false) {} int init(RGWRados *storage, RGWBucketAdminOpState& op_state); int create_bucket(string bucket_str, string& user_id, string& display_name); diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 2fdcfe5bebd..67d8b555527 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -2784,9 +2784,12 @@ struct get_obj_data : public RefCountedObject { atomic_t err_code; Throttle throttle; - get_obj_data(CephContext *_cct) : cct(_cct), - total_read(0), lock("get_obj_data"), data_lock("get_obj_data::data_lock"), - throttle(cct, "get_obj_data", cct->_conf->rgw_get_obj_window_size, false) {} + get_obj_data(CephContext *_cct) + : cct(_cct), + rados(NULL), ctx(NULL), + total_read(0), lock("get_obj_data"), data_lock("get_obj_data::data_lock"), + client_cb(NULL), + throttle(cct, "get_obj_data", cct->_conf->rgw_get_obj_window_size, false) {} virtual ~get_obj_data() { } void set_cancelled(int r) { cancelled.set(1); diff --git a/src/rgw/rgw_user.cc b/src/rgw/rgw_user.cc index 8a636d1cae3..1d998e2b338 100644 --- a/src/rgw/rgw_user.cc +++ b/src/rgw/rgw_user.cc @@ -526,9 +526,12 @@ static void dump_user_info(Formatter *f, RGWUserInfo &info) RGWAccessKeyPool::RGWAccessKeyPool(RGWUser* usr) { user = usr; + swift_keys = NULL; + access_keys = NULL; if (!user) { keys_allowed = false; + store = NULL; return; } @@ -987,13 +990,10 @@ int RGWAccessKeyPool::remove(RGWUserAdminOpState& op_state, std::string *err_msg RGWSubUserPool::RGWSubUserPool(RGWUser *usr) { - if (!usr) - subusers_allowed = false; - - subusers_allowed = true; - + subusers_allowed = (usr != NULL); store = usr->get_store(); user = usr; + subuser_map = NULL; } RGWSubUserPool::~RGWSubUserPool() @@ -1276,10 +1276,8 @@ int RGWSubUserPool::modify(RGWUserAdminOpState& op_state, std::string *err_msg, RGWUserCapPool::RGWUserCapPool(RGWUser *usr) { user = usr; - - if (!user) { - caps_allowed = false; - } + caps = NULL; + caps_allowed = (user != NULL); } RGWUserCapPool::~RGWUserCapPool() @@ -1392,7 +1390,7 @@ int RGWUserCapPool::remove(RGWUserAdminOpState& op_state, std::string *err_msg, return 0; } -RGWUser::RGWUser() : caps(this), keys(this), subusers(this) +RGWUser::RGWUser() : store(NULL), info_stored(false), caps(this), keys(this), subusers(this) { init_default(); } diff --git a/src/tools/ceph-filestore-dump.cc b/src/tools/ceph-filestore-dump.cc index cbde3a52d47..7b8a2243fbe 100644 --- a/src/tools/ceph-filestore-dump.cc +++ b/src/tools/ceph-filestore-dump.cc @@ -253,10 +253,16 @@ struct metadata_section { epoch_t map_epoch; pg_info_t info; pg_log_t log; + metadata_section(__u8 struct_ver, epoch_t map_epoch, const pg_info_t &info, - const pg_log_t &log): struct_ver(struct_ver), - map_epoch(map_epoch), info(info), log(log) { } - metadata_section() { } + const pg_log_t &log) + : struct_ver(struct_ver), + map_epoch(map_epoch), + info(info), + log(log) { } + metadata_section() + : struct_ver(0), + map_epoch(0) { } void encode(bufferlist& bl) const { ENCODE_START(1, 1, bl); |