]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: Add read/write fadvise op flags CEPH_OSD_OP_FLAG_FADVISE_*.
authorJianpeng Ma <jianpeng.ma@intel.com>
Tue, 18 Nov 2014 06:58:28 +0000 (14:58 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Fri, 12 Dec 2014 06:23:34 +0000 (14:23 +0800)
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/include/rados.h
src/librados/librados.cc

index 21e994db036635d3ce6f8a78c8001276998d4499..4b1d134b2df73839a414cc086f17843983b6d6ef 100644 (file)
@@ -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*/
index 573fae7ee7c24efe6c37eec347d14f10dd44e5a1..8200292eb4823ce7faed6e48c600e1f5ad47e985 100644 (file)
@@ -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);
 }