From: Jianpeng Ma Date: Tue, 18 Nov 2014 06:58:28 +0000 (+0800) Subject: librados: Add read/write fadvise op flags CEPH_OSD_OP_FLAG_FADVISE_*. X-Git-Tag: v0.91~55^2~3^2~23 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b35cb48f57e9903f5bddd40e4a32b103273ec5c3;p=ceph.git librados: Add read/write fadvise op flags CEPH_OSD_OP_FLAG_FADVISE_*. Signed-off-by: Jianpeng Ma --- diff --git a/src/include/rados.h b/src/include/rados.h index 21e994db0366..4b1d134b2df7 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 573fae7ee7c2..8200292eb482 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); }