summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-01-18 20:57:40 -0800
committerSage Weil <sage@inktank.com>2013-01-18 20:57:40 -0800
commitea9628fba47b31882ad28893b2598382300c1ab8 (patch)
treee5cdda600d86406bae61f927db8a7b09f7ea7f7b
parent48308954cbbec59a4671b20a685a920b8db2ca58 (diff)
parentaea898db2b56878b50f09dcbbf52347f4cc5c754 (diff)
downloadceph-ea9628fba47b31882ad28893b2598382300c1ab8.tar.gz
Merge remote-tracking branch 'gh/next'
-rwxr-xr-xqa/workunits/cephtool/test.sh8
-rw-r--r--src/mon/OSDMonitor.cc5
-rw-r--r--src/rgw/rgw_rados.cc3
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;