]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rados: define alloc hint flags
authorSage Weil <sage@redhat.com>
Thu, 8 Oct 2015 17:56:15 +0000 (13:56 -0400)
committerSage Weil <sage@redhat.com>
Sat, 14 May 2016 13:18:09 +0000 (09:18 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/common/ceph_strings.cc
src/include/rados.h

index 2fef54168e14cbd8d3b4c2a7fcb72ba3eac36a5d..9aa368dbc393c5a3f7b1ff1cacc15f2d14b8331f 100644 (file)
@@ -58,6 +58,30 @@ const char *ceph_osd_watch_op_name(int o)
        }
 }
 
+const char *ceph_osd_alloc_hint_flag_name(int f)
+{
+       switch (f) {
+       case CEPH_OSD_ALLOC_HINT_FLAG_SEQUENTIAL_WRITE:
+               return "sequential_write";
+       case CEPH_OSD_ALLOC_HINT_FLAG_RANDOM_WRITE:
+               return "random_write";
+       case CEPH_OSD_ALLOC_HINT_FLAG_SEQUENTIAL_READ:
+               return "sequential_read";
+       case CEPH_OSD_ALLOC_HINT_FLAG_RANDOM_READ:
+               return "random_read";
+       case CEPH_OSD_ALLOC_HINT_FLAG_APPEND_ONLY:
+               return "append_only";
+       case CEPH_OSD_ALLOC_HINT_FLAG_IMMUTABLE:
+               return "immutable";
+       case CEPH_OSD_ALLOC_HINT_FLAG_SHORTLIVED:
+               return "shortlived";
+       case CEPH_OSD_ALLOC_HINT_FLAG_LONGLIVED:
+               return "longlived";
+       default:
+               return "???";
+       }
+}
+
 const char *ceph_mds_state_name(int s)
 {
        switch (s) {
index 9ea6ce7990671b6cbe3c931d2e39d90cab4e0dba..695febaf80e2027b25f0e79d28adf7eb31d51f31 100644 (file)
@@ -464,6 +464,19 @@ enum {
 
 const char *ceph_osd_watch_op_name(int o);
 
+enum {
+       CEPH_OSD_ALLOC_HINT_FLAG_SEQUENTIAL_WRITE = 1,
+       CEPH_OSD_ALLOC_HINT_FLAG_RANDOM_WRITE = 2,
+       CEPH_OSD_ALLOC_HINT_FLAG_SEQUENTIAL_READ = 4,
+       CEPH_OSD_ALLOC_HINT_FLAG_RANDOM_READ = 8,
+       CEPH_OSD_ALLOC_HINT_FLAG_APPEND_ONLY = 16,
+       CEPH_OSD_ALLOC_HINT_FLAG_IMMUTABLE = 32,
+       CEPH_OSD_ALLOC_HINT_FLAG_SHORTLIVED = 64,
+       CEPH_OSD_ALLOC_HINT_FLAG_LONGLIVED = 128,
+};
+
+const char *ceph_osd_alloc_hint_flag_name(int f);
+
 /*
  * an individual object operation.  each may be accompanied by some data
  * payload
@@ -535,6 +548,7 @@ struct ceph_osd_op {
                struct {
                        __le64 expected_object_size;
                        __le64 expected_write_size;
+                       __le32 flags;  /* CEPH_OSD_OP_ALLOC_HINT_FLAG_* */
                } __attribute__ ((packed)) alloc_hint;
                struct {
                        __le64 offset;