Avoid dereferencing unitialized top-level objects when !found and the
create option not present (when means we cannot create them).
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Re-order lookup_fh, FLAG_CREATE and remote create operations,
and provide FLAG_LOCK, to get atomicity.
Other ops which need to linearize at lookup_fh still need to be
converted.
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
This change implements attr encode/decode glue for RGWGetObj and
RGWPutObj. Both now have attr maps as member variables.
To save copies, callers producing attrs can use emplace_attr to
move attrs into the map.
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Initially, all RGWRequest logic was open coded, but it's all
moving into RGWLibFS to get better encapsulation (e.g., for atomicity).
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
avoid names that are misleading with accelio's terminology
(msg - is one way notification, req - is 2 ways notification)
Signed-off-by: Avner BenHanoch <avnerb@mellanox.com>
avoid names that are misleading with accelio's terminology
(msg - is one way notification, req - is 2 ways notification)
Signed-off-by: Avner BenHanoch <avnerb@mellanox.com>
if we have a wrong "created", OSD receiving an osd_pg_create message
could fail to project its history and crash. a bad split_bits could
mislead the monitor and osd, and hence cause problems.
* set child.info.history.epoch_created to osdmap.get_epoch() instead of
using the parent's epoch_created
* set child.info.stats.parent_split_bits to the calculated split_bits
instead using the parent's split_bits
Fixes: http://tracker.ceph.com/issues/15426
Signed-off-by: Kefu Chai <kchai@redhat.com>
as a work-around of https://bugs.python.org/issue8027, pass ${CC} and
${LDSHARED} to distutils, so we can still have a working compiling
command line even ${CC} is "ccache gcc".
Signed-off-by: Kefu Chai <kchai@redhat.com>
According to 755c685f2d,
we shall return a int value instead of bool now.
So if we fail to parse an object, we shall reset "false" into "-EINVAL" instead,
as "false" is always translated into 0, which is supposed to indicate a success.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
"755c685f2d"
change the lfn_parse_object_name() return type from bool to int but does not
change the relevant test correspondingly.
Fixes: http://tracker.ceph.com/issues/15464
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
Maintenance ops that fail to notify a peer of the update should not
report a failure to the original user.
Fixes: http://tracker.ceph.com/issues/15351
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
It is only possible to remove image from rbd_mirroring object if the
mirroring image state is set to DISABLING.
Signed-off-by: Ricardo Dias <rdias@suse.com>