From: Jianpeng Ma Date: Wed, 18 Mar 2015 01:47:27 +0000 (+0800) Subject: librados: add src_fadvise_flags in ceph_osd_op::copy_from X-Git-Tag: v9.0.1~123^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=23b59f33280b8cd15fbe64db320153be0813b498;p=ceph.git librados: add src_fadvise_flags in ceph_osd_op::copy_from Using this field as the src object fadvise flags. the flags of ceph_osd_op mean the dest object fadvise flags. Signed-off-by: Jianpeng Ma --- diff --git a/src/include/rados.h b/src/include/rados.h index 3691a2ceadb0..b2b8123329e9 100644 --- a/src/include/rados.h +++ b/src/include/rados.h @@ -520,6 +520,11 @@ struct ceph_osd_op { __le64 snapid; __le64 src_version; __u8 flags; + /* + * __le32 flags: CEPH_OSD_OP_FLAG_FADVISE_: mean the fadvise flags for dest object + * src_fadvise_flags mean the fadvise flags for src object + */ + __le32 src_fadvise_flags; } __attribute__ ((packed)) copy_from; struct { struct ceph_timespec stamp; diff --git a/src/librados/librados.cc b/src/librados/librados.cc index cbefe0b35d86..a9eadfa4deff 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -424,7 +424,7 @@ void librados::ObjectWriteOperation::copy_from(const std::string& src, { ::ObjectOperation *o = (::ObjectOperation *)impl; o->copy_from(object_t(src), src_ioctx.io_ctx_impl->snap_seq, - src_ioctx.io_ctx_impl->oloc, src_version, 0); + src_ioctx.io_ctx_impl->oloc, src_version, 0, 0); } void librados::ObjectWriteOperation::undirty() diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index c3210d0fc0a4..a65af74e0d89 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -7151,7 +7151,8 @@ int ReplicatedPG::start_flush( CEPH_OSD_COPY_FROM_FLAG_FLUSH | CEPH_OSD_COPY_FROM_FLAG_IGNORE_OVERLAY | CEPH_OSD_COPY_FROM_FLAG_IGNORE_CACHE | - CEPH_OSD_COPY_FROM_FLAG_MAP_SNAP_CLONE); + CEPH_OSD_COPY_FROM_FLAG_MAP_SNAP_CLONE, + 0); } C_Flush *fin = new C_Flush(this, soid, get_last_peering_reset()); diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index 68c429d58f37..352afd0e0807 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -956,11 +956,13 @@ struct ObjectOperation { } void copy_from(object_t src, snapid_t snapid, object_locator_t src_oloc, - version_t src_version, unsigned flags) { + version_t src_version, unsigned flags, + unsigned src_fadvise_flags) { OSDOp& osd_op = add_op(CEPH_OSD_OP_COPY_FROM); osd_op.op.copy_from.snapid = snapid; osd_op.op.copy_from.src_version = src_version; osd_op.op.copy_from.flags = flags; + osd_op.op.copy_from.src_fadvise_flags = src_fadvise_flags; ::encode(src, osd_op.indata); ::encode(src_oloc, osd_op.indata); }