rgw, cls_rgw: don't remove olh objects

A single head object can contain both olh data, and object data. Don't
remove object if it has olh information on it, just reset the other
info.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
cleanup, squash
cls_rgw: allow olh linking to null instance objects

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: set olh if object has been versioned

Bucket could have versioning suspended, but object has been versioned,
so once object has olh pointer in it, we need to continue maintainig it.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: move RGWRadosCtx into RGWRados

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: s/RGWRadosCtx/ObjectCtx

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: start reorganizing RGWRados

Need to reduce the various states of the different operations. The aim
is to separate the system objects operations from the data objects
operations, and compartmentalize the various systems.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: remove plain object processor

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: pass around object context refrences, remove unused code

We want to make it clear that the object context is required for
non-system objects, pass it by reference (rather than by pointer). Make
the put processors get it as a constructor param and keep it on the
object.
Still haven't updated everything, as some stuff is going to change
anyway.
Remove the plain put processor, as it is not used anymore.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: don't use put_system_obj() for data objects

Use the new interface instead.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: get rid of put_obj_meta(), replace with put_system_obj()

Last use of put_obj_meta() was for system object, simplify it for that
specific use case and rename.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: remove old index update calls

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: remove unused code

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: switch RGWRados::delete_obj() to new interface

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: fix missing state initalization

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: remove more unused code

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: rework prepare_get_obj(), get_obj()

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: change RGWRados::get_attr()

This is an interim fix, will need to make it work similarly to the other
calls.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: clean up system obj interfaces

Create a new structure to use, RGWRados::SystemObject, similar to the
previous changes made for the data objects.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: s/RGWRados::ObjectCtx/RGWObjectCtx

Can't forward declare nested class.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>