summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@inktank.com>2013-08-01 18:27:20 -0700
committerYehuda Sadeh <yehuda@inktank.com>2013-08-01 18:27:20 -0700
commit60679a0a6abf7c098f01f1b3c2d456d8682bf615 (patch)
tree2700adb282e896fccd5fb0a80163ef74781d667c
parentab1f4386a1ccef1302955d0e9922156cc50d20af (diff)
parent43c271253552a6754581e44b5c63673eb7a32554 (diff)
downloadceph-60679a0a6abf7c098f01f1b3c2d456d8682bf615.tar.gz
Merge branch 'wip-5810' into next
-rw-r--r--src/rgw/rgw_bucket.cc12
-rw-r--r--src/rgw/rgw_rest_metadata.cc2
-rw-r--r--src/rgw/rgw_user.cc3
3 files changed, 11 insertions, 6 deletions
diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc
index d32af5df601..3cb730b555e 100644
--- a/src/rgw/rgw_bucket.cc
+++ b/src/rgw/rgw_bucket.cc
@@ -1416,7 +1416,8 @@ public:
return ret;
// are we actually going to perform this put, or is it too old?
- if (!check_versions(old_ot.read_version, orig_mtime,
+ if (ret != -ENOENT &&
+ !check_versions(old_ot.read_version, orig_mtime,
objv_tracker.write_version, mtime, sync_type)) {
return STATUS_NO_APPLY;
}
@@ -1559,10 +1560,12 @@ public:
time_t orig_mtime;
int ret = store->get_bucket_instance_info(NULL, oid, old_bci.info, &orig_mtime, &old_bci.attrs);
- if (ret < 0 && ret != -ENOENT)
+ bool exists = (ret != -ENOENT);
+ if (ret < 0 && exists)
return ret;
- if (ret == -ENOENT || old_bci.info.bucket.bucket_id != bci.info.bucket.bucket_id) {
+
+ if (!exists || old_bci.info.bucket.bucket_id != bci.info.bucket.bucket_id) {
/* a new bucket, we need to select a new bucket placement for it */
rgw_bucket bucket;
ret = store->set_bucket_location_by_rule(bci.info.placement_rule, oid, bucket);
@@ -1579,7 +1582,8 @@ public:
}
// are we actually going to perform this put, or is it too old?
- if (!check_versions(old_bci.info.objv_tracker.read_version, orig_mtime,
+ if (exists &&
+ !check_versions(old_bci.info.objv_tracker.read_version, orig_mtime,
objv_tracker.write_version, mtime, sync_type)) {
objv_tracker.read_version = old_bci.info.objv_tracker.read_version;
return STATUS_NO_APPLY;
diff --git a/src/rgw/rgw_rest_metadata.cc b/src/rgw/rgw_rest_metadata.cc
index 0705a46ed6c..de33df17446 100644
--- a/src/rgw/rgw_rest_metadata.cc
+++ b/src/rgw/rgw_rest_metadata.cc
@@ -164,7 +164,7 @@ void RGWOp_Metadata_Put::execute() {
RGWMetadataHandler::sync_type_t sync_type = RGWMetadataHandler::APPLY_ALWAYS;
bool mode_exists = false;
- string mode_string = s->info.args.get("sync-type", &mode_exists);
+ string mode_string = s->info.args.get("update-type", &mode_exists);
if (mode_exists) {
bool parsed = RGWMetadataHandler::string_to_sync_type(mode_string,
sync_type);
diff --git a/src/rgw/rgw_user.cc b/src/rgw/rgw_user.cc
index 6fcecd4a98d..5e5b5c564bb 100644
--- a/src/rgw/rgw_user.cc
+++ b/src/rgw/rgw_user.cc
@@ -2308,7 +2308,8 @@ public:
return ret;
// are we actually going to perform this put, or is it too old?
- if (!check_versions(objv_tracker.read_version, orig_mtime,
+ if (ret != -ENOENT &&
+ !check_versions(objv_tracker.read_version, orig_mtime,
objv_tracker.write_version, mtime, sync_mode)) {
return STATUS_NO_APPLY;
}