objecter: {,linger_,command_}ops reside under osd_session

 - replace client_lock with internal locks
 - internal timer
 - lock per op
 - disabled some counters

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rwlock: add is_locked(), etc.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
librados: don't hold lock in dispatch()

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
librados: don't hold client lock in certain operations

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: abort early from logging function

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
client: adapt to new objecter interface

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
librados: adapt to new objecter interface

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
mds: adapt to new objecter interface

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
test: adapt to new objecter interface

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
objecter: get rid of osdmap_lock

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
objecter: _get_session() returns -EAGAIN if lost race

Also, relevant callers restart in that case.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
objecter: don't blindly promote lock

In some cases the lock might already be promoted, check to see whether
it's already write-locked.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: _maybe_request_map() returns -EAGAIN if lost in race

Also modify callers to handle that if needed.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
objecter: no need to promote lock for monc->renew_subs()

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
objecter: no need to promote lock before send_message()

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
objecter: no need for get_session()

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rwlock: create RWLock::Context

Need for tracking lock state

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
objecter: propagate lock context

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rwlock: can unlock locker explicitly

To simplify certain code path, and help avoiding missed unlock.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
objecter: use locker instead of explicit lock / unlock

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