]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: add bucket to user list prior to creating bucket
authorSage Weil <sage.weil@dreamhost.com>
Tue, 29 Mar 2011 19:39:46 +0000 (12:39 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Tue, 29 Mar 2011 19:39:46 +0000 (12:39 -0700)
This avoids hitting the osd immediately following a bucket creation, which
will avoid any map update latency for most requests.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/rgw/rgw_op.cc

index 2843f63a3f14d4818c920fc12e450eb236a87828..a24a6a8b4f877914178890f6c4ffb027135eb8d4 100644 (file)
@@ -313,11 +313,15 @@ void RGWCreateBucket::execute()
 
   attrs[RGW_ATTR_ACL] = aclbl;
 
+  ret = rgw_add_bucket(s->user.user_id, s->bucket_str);
+  if (ret)
+    goto done;
+
   ret = rgwstore->create_bucket(s->user.user_id, s->bucket_str, attrs,
                                s->user.auid);
+  if (ret)
+    rgw_remove_bucket(s->user.user_id, s->bucket_str);
 
-  if (ret == 0)
-    ret = rgw_add_bucket(s->user.user_id, s->bucket_str);
 done:
   send_response();
 }