From: Sage Weil Date: Thu, 8 Oct 2015 17:56:15 +0000 (-0400) Subject: rados: define alloc hint flags X-Git-Tag: v11.0.0~466^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d179dd449ccd01762158622acd98482c5c2a6e99;p=ceph.git rados: define alloc hint flags Signed-off-by: Sage Weil --- diff --git a/src/common/ceph_strings.cc b/src/common/ceph_strings.cc index 2fef54168e14..9aa368dbc393 100644 --- a/src/common/ceph_strings.cc +++ b/src/common/ceph_strings.cc @@ -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) { diff --git a/src/include/rados.h b/src/include/rados.h index 9ea6ce799067..695febaf80e2 100644 --- a/src/include/rados.h +++ b/src/include/rados.h @@ -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;