docs: fix spacing in radosgw config-ref

Needed to add an extra empty line between header and properties.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
PG,ReplicatedPG: move write_blocked_by_scrub logic into a helper

Signed-off-by: Samuel Just <sam.just@inktank.com>
docs: add rgw POST object as supported feature

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
doc: document swift compatibility

Add a table that specifies swift features compatibility

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: option to provide alternative s3 put obj success code

Fixes: #3529
Added a new option: rgw_s3_success_create_obj_status.
Expected values are 0, 200, 201, 204. A value of 0
will skip the special handling altogether. Any value
other than the specified will default to 200.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: configurable list of object attributes

Fixes: #3535
New object attributes are now configurable. A list
can be specified via the 'rgw extended http attrs'
config param.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
docs: better documentation of new rgw feature

Document rgw_extended_http_attrs config option.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
ReplicatedPG: watchers must grab Connection ref as well

Session refs are not really valid on their own, the
corresponding Connection must remain live for at least
as long as the Session.

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: only put if we cancel evt in unregister_unconnected_watcher

If we fail to cancel the callback, the callback will fire and
release those resources.

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG:, remove_notify, put session after con

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG,ReplicatedPG: handle_watch_timeout must not write during scrub/degraded

Currently, handle_watch_timeout will gladly write to an object while
that object is degraded or is being scrubbed.  Now, we queue a
callback to be called on scrub completion or finish_degraded_object
to recall handle_watch_timeout.  The callback mechanism assumes that
the registered callbacks assume they will be called with the pg
lock -- and no other locks -- already held.

The callback will release the obc and pg refs unconditionally.  Thus,
we need to replace the unconnected_watchers pointer with NULL to
ensure that unregister_unconnected_watcher fails to cancel the
event and does not release the resources a second time.

Signed-off-by: Samuel Just <sam.just@inktank.com>
OSD: pg might be removed during disconnect_session_watches

We don't hold the osd_lock between the session->watches traversal
and the obc checks.

Signed-off-by: Samuel Just <sam.just@inktank.com>
/etc/init.d/ceph: fs_type assignment syntax error

This handles the remainder of 3581; it's a lot like the problem in
mkcephfs, but it isn't mkcephfs.

Fixes: #3581
Signed-off-by: Dan Mick <dan.mick@inktank.com>
mount.fuse.ceph: add ceph-fuse mount helper

Signed-off-by: Sage Weil <sage@inktank.com>
mount.fuse.ceph: strip out noauto option

mount -a uses this, but also passes it to mount.fuse.ceph, and libceph
complains:

fuse: unknown option `noauto'

Signed-off-by: Sage Weil <sage@inktank.com>
auth: guard decode_decrypt with try block

This will catch buffer decoding errors (maybe the block is empty) and
return an error string.

May fix (or possibly paper over) #3459.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
qa: echo commands run by rbd map-unmap workunit

It's hard to figure out what failed without this.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Merge remote branch 'origin/next'
clarify/correct some of sample.ceph.conf

Signed-off-by: Greg Farnum <greg@inktank.com>
OSD: disconnect_session_watches obc might not be valid after we relock

If disconnect_session_watches races with watch removal, the session
might no longer have a valid obc ref.  In that case, move on to
the next obc.

Note, there is no danger of any obcs being *added* to the session
since the session/connection at this point is dead.

Signed-off-by: Samuel Just <sam.just@inktank.com>