From b35cb48f57e9903f5bddd40e4a32b103273ec5c3 Mon Sep 17 00:00:00 2001 From: Jianpeng Ma Date: Tue, 18 Nov 2014 14:58:28 +0800 Subject: [PATCH] librados: Add read/write fadvise op flags CEPH_OSD_OP_FLAG_FADVISE_*. Signed-off-by: Jianpeng Ma --- src/include/rados.h | 8 ++++++-- src/librados/librados.cc | 8 ++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/include/rados.h b/src/include/rados.h index 21e994db03663..4b1d134b2df73 100644 --- a/src/include/rados.h +++ b/src/include/rados.h @@ -412,8 +412,12 @@ enum { }; enum { - CEPH_OSD_OP_FLAG_EXCL = 1, /* EXCL object create */ - CEPH_OSD_OP_FLAG_FAILOK = 2, /* continue despite failure */ + CEPH_OSD_OP_FLAG_EXCL = 0x1, /* EXCL object create */ + CEPH_OSD_OP_FLAG_FAILOK = 0x2, /* continue despite failure */ + CEPH_OSD_OP_FLAG_FADVISE_RANDOM = 0x4, /* the op is random */ + CEPH_OSD_OP_FLAG_FADVISE_SEQUENTIAL = 0x8, /* the op is sequential */ + CEPH_OSD_OP_FLAG_FADVISE_WILLNEED = 0x10,/* data will be accessed in the near future */ + CEPH_OSD_OP_FLAG_FADVISE_DONTNEED = 0x20,/* data will not be accessed in the near future */ }; #define EOLDSNAPC 85 /* ORDERSNAP flag set; writer has old snapc*/ diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 573fae7ee7c24..8200292eb4823 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -88,6 +88,14 @@ static void set_op_flags(::ObjectOperation *o, int flags) rados_flags |= CEPH_OSD_OP_FLAG_EXCL; if (flags & LIBRADOS_OP_FLAG_FAILOK) rados_flags |= CEPH_OSD_OP_FLAG_FAILOK; + if (flags & LIBRADOS_OP_FLAG_FADVISE_RANDOM) + rados_flags |= CEPH_OSD_OP_FLAG_FADVISE_RANDOM; + if (flags & LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL) + rados_flags |= CEPH_OSD_OP_FLAG_FADVISE_SEQUENTIAL; + if (flags & LIBRADOS_OP_FLAG_FADVISE_WILLNEED) + rados_flags |= CEPH_OSD_OP_FLAG_FADVISE_WILLNEED; + if (flags & LIBRADOS_OP_FLAG_FADVISE_DONTNEED) + rados_flags |= CEPH_OSD_OP_FLAG_FADVISE_DONTNEED; o->set_last_op_flags(rados_flags); } -- 2.39.5