.gitignore: xattr_bench

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
osd: fix object_info.size mismatch file due to truncate_seq on new object

If the first write that creates an object includes a truncate_seq and
truncate_size, we were taking the truncte patch and doing a truncate op
in our transaction prior to the write, and then setting the object_info
size appropriately.  However, if the object doesn't exist, the truncate
op fails even though the oi.size gets set.

Later, this turns up as a scrub error (see #2080).

Fix this by skipping the truncate if it is a new object.  Instead, we
should just initialize our truncate_{seq,size} metadata so that we're all
up to date for any later writes.

Alternatively, we could touch the object and then truncate it (up) to the
large size, but this is sort of a waste; data beyond a short object eof is
defined to be zeros, so all we would accomplish is making recovery work
harder by copying zeros around.

Fixes: #2080
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Reviewed-by: Samuel Just <samuel.just@dreamhost.com>
Merge branch 'next'
ReplicatedPG: there should be no object_contexts during on_activate

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
OSD: do not hold obc lock in disconnect_session_watches

ObjectContext::lock is used only for implementing read_lock and
write_lock.  PG::lock is used to protect the ObjectContexts
belonging to a pg.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Reviewed-by: Josh Durgin <josh.durgin@dreamhost.com>
rgw: fix internal cache api

This fixes issue #2190

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
rgw: incrase socket backlog

20 is too small

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
rgw: process default alt args before processing conf file

this fixes #2189

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
rgw: process default alt args before processing conf file

this fixes #2189

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
v0.44
rgw: replace bucket_id generation

bucket_id is now string: <global instance id>.<num> where
num is increasing monotonically within the current rgw
instance.

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
ReplicatedPG: osd_max_notify_timeout -> osd_default_notify_timeout

This setting should not override user specified timeout.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Objecter: add op->resend_on_any_change

lingers must be resent even if the primary does not change.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
ReplicatedPG: return -EBUSY on delete for objects with watchers

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Revert "Objecter: add op->resend_on_any_change"

This reverts commit c53194d75390dd6d5aa4a9a33f741cbd106e3338.

recalc_linger_op_target is used for linger_ops

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
rgw: remove unused definition

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
rgw: keep pool placement info also in cacheable location

Mirror the pools placement info, so that we can cache it.

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
TestRados: Add watch

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Reviewed-by: Josh Durgin <josh.durgin@dreamhost.com>
Objecter: resend linger_ops on any change

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Reviewed-by: Josh Durgin <josh.durgin@dreamhost.com>
Merge branch 'stable'