osd/: move split_list and split_request into OSD

Signed-off-by: Samuel Just <sam.just@inktank.com>
rgw: set meta object in extra flag when initializing it

As part of the fix for 8452 we moved the meta object initialization.
Missed moving the extra flag initialization that is needed. This breaks
setups where there's a separate extra pool (needed in ec backends).

Reported-by: Sylvain Munaut <s.munaut@whatever-company.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
OSD::calc_priors_during: fix confusing for loop bracing (cosmetic)

Confusing lack of braces is confusing.

Signed-off-by: Samuel Just <sam.just@inktank.com>
OSD::calc_priors_during: handle CRUSH_ITEM_NONE correctly

Fixes: #8507
Signed-off-by: Samuel Just <sam.just@inktank.com>
rgw: reduce calls to rgw_obj.set_obj()

default manifest iterator construction did unneeded init of rgw_obj.
Also add a smarter copy constructor to RGWObjState that does not copy
manifest if not needed.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
OSD: move waiting_for_pg into Session

This way, we can handle pg splits atomically with ms_fast_dispatch.

Signed-off-by: Samuel Just <sam.just@inktank.com>
Remove SequencerPosition from KeyValueStore

Now KeyValueStore expects kv backend to ensure consistency and there is unusable
for KeyValueStore to store a SequencerPosition.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Fix write operation on a deleted object in the same transaction

If the following op happened:
touch obj
delete obj
write obj

KeyValueStore will fail at "write" operation.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Add test for objectstore

Add remove then write object in a transaction.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
rgw: cache decoded user info

Instead of accessing the raw user info data, cache the decoded
structure.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: cache bucket info

This is really a partial implementation, so should only be used for
testing.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: an infrastructure for hooking into the raw cache

Extend the RGWCache so that we can chain other caches to it so that when
data is invalidated it notifies them.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: user info uses cache chaining

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: bucket info uses cache chaining

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: chain binfo_cache to multiple cache entries

Need to chain it to both the entry point and to the instance.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: chain to multiple cache entries in one call

This ensures that chained cache entries that depend on more than one raw
cache entry (bucket info cache depends on both the bucket entry point
and on the bucket info object), are chained and created atomically.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
qa: add script to test krbd setting ro/rw ioctl

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
erasure-code: remove jerasure internals dependencies

Use the galois_init_default_field() function instead of implementing it
in the init function of the ErasureCodeJerasure plugin. It removes
dependencies to internal variables of the jerasure library that are
subject to change because they are not part of the published API.

http://tracker.ceph.com/issues/8071 Fixes: #8071

Signed-off-by: Loic Dachary <loic@dachary.org>
tools/cephfs: Clean up waits in Dumper

Remove some LOC by using C_SaferCond.

Signed-off-by: John Spray <john.spray@inktank.com>
tools/cephfs: error handling in journal_export

Was failing on unreadable journal even if
only trying to do an import.

Was calling messenger destructor without init
on early failures due to early instantiation
of Dumper.

Signed-off-by: John Spray <john.spray@inktank.com>