__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;
{
::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()
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());
}
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);
}