diff options
author | Sage Weil <sage@inktank.com> | 2013-01-18 20:57:40 -0800 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-01-18 20:57:40 -0800 |
commit | ea9628fba47b31882ad28893b2598382300c1ab8 (patch) | |
tree | e5cdda600d86406bae61f927db8a7b09f7ea7f7b | |
parent | 48308954cbbec59a4671b20a685a920b8db2ca58 (diff) | |
parent | aea898db2b56878b50f09dcbbf52347f4cc5c754 (diff) | |
download | ceph-ea9628fba47b31882ad28893b2598382300c1ab8.tar.gz |
Merge remote-tracking branch 'gh/next'
-rwxr-xr-x | qa/workunits/cephtool/test.sh | 8 | ||||
-rw-r--r-- | src/mon/OSDMonitor.cc | 5 | ||||
-rw-r--r-- | src/rgw/rgw_rados.cc | 3 |
3 files changed, 14 insertions, 2 deletions
diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index 22ca2008651..42442c83e1c 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -13,8 +13,12 @@ ceph mon dump ceph mds dump ceph tell osd.0 version -ceph tell osd.9999 version && exit 1 -ceph tell osd.foo version && exit 1 +! ceph tell osd.9999 version +! ceph tell osd.foo version + +ceph osd reweight 0 0.9 +! ceph osd reweight 0 -1 +ceph osd reweight 0 1 for id in `ceph osd ls` ; do ceph tell osd.$id version diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 23d68d1ce9a..226229591d3 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2512,6 +2512,11 @@ bool OSDMonitor::prepare_command(MMonCommand *m) } else { float w = strtof(m->cmd[3].c_str(), 0); long ww = (int)((float)CEPH_OSD_IN*w); + if (ww < 0L) { + ss << "weight must be > 0"; + err = -EINVAL; + goto out; + } if (osdmap.exists(osd)) { pending_inc.new_weight[osd] = ww; ss << "reweighted osd." << osd << " to " << w << " (" << ios::hex << ww << ios::dec << ")"; diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 70220b4176d..d75b0d8a8e5 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -1260,6 +1260,9 @@ int RGWRados::copy_obj(void *ctx, attrs[RGW_ATTR_ETAG] = attrset[RGW_ATTR_ETAG]; attrset = attrs; + } else { + /* copying attrs from source, however acls should not be copied */ + attrset[RGW_ATTR_ACL] = attrs[RGW_ATTR_ACL]; } RGWObjManifest manifest; |