]> git.proxmox.com Git - ceph.git/blob - ceph/src/librados/librados_util.cc
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / librados / librados_util.cc
1 #include "librados_util.h"
2
3 uint8_t get_checksum_op_type(rados_checksum_type_t type) {
4 switch (type) {
5 case LIBRADOS_CHECKSUM_TYPE_XXHASH32:
6 return CEPH_OSD_CHECKSUM_OP_TYPE_XXHASH32;
7 case LIBRADOS_CHECKSUM_TYPE_XXHASH64:
8 return CEPH_OSD_CHECKSUM_OP_TYPE_XXHASH64;
9 case LIBRADOS_CHECKSUM_TYPE_CRC32C:
10 return CEPH_OSD_CHECKSUM_OP_TYPE_CRC32C;
11 default:
12 return -1;
13 }
14 }
15
16 int get_op_flags(int flags)
17 {
18 int rados_flags = 0;
19 if (flags & LIBRADOS_OP_FLAG_EXCL)
20 rados_flags |= CEPH_OSD_OP_FLAG_EXCL;
21 if (flags & LIBRADOS_OP_FLAG_FAILOK)
22 rados_flags |= CEPH_OSD_OP_FLAG_FAILOK;
23 if (flags & LIBRADOS_OP_FLAG_FADVISE_RANDOM)
24 rados_flags |= CEPH_OSD_OP_FLAG_FADVISE_RANDOM;
25 if (flags & LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL)
26 rados_flags |= CEPH_OSD_OP_FLAG_FADVISE_SEQUENTIAL;
27 if (flags & LIBRADOS_OP_FLAG_FADVISE_WILLNEED)
28 rados_flags |= CEPH_OSD_OP_FLAG_FADVISE_WILLNEED;
29 if (flags & LIBRADOS_OP_FLAG_FADVISE_DONTNEED)
30 rados_flags |= CEPH_OSD_OP_FLAG_FADVISE_DONTNEED;
31 if (flags & LIBRADOS_OP_FLAG_FADVISE_NOCACHE)
32 rados_flags |= CEPH_OSD_OP_FLAG_FADVISE_NOCACHE;
33 return rados_flags;
34 }
35
36 int translate_flags(int flags)
37 {
38 int op_flags = 0;
39 if (flags & librados::OPERATION_BALANCE_READS)
40 op_flags |= CEPH_OSD_FLAG_BALANCE_READS;
41 if (flags & librados::OPERATION_LOCALIZE_READS)
42 op_flags |= CEPH_OSD_FLAG_LOCALIZE_READS;
43 if (flags & librados::OPERATION_ORDER_READS_WRITES)
44 op_flags |= CEPH_OSD_FLAG_RWORDERED;
45 if (flags & librados::OPERATION_IGNORE_CACHE)
46 op_flags |= CEPH_OSD_FLAG_IGNORE_CACHE;
47 if (flags & librados::OPERATION_SKIPRWLOCKS)
48 op_flags |= CEPH_OSD_FLAG_SKIPRWLOCKS;
49 if (flags & librados::OPERATION_IGNORE_OVERLAY)
50 op_flags |= CEPH_OSD_FLAG_IGNORE_OVERLAY;
51 if (flags & librados::OPERATION_FULL_TRY)
52 op_flags |= CEPH_OSD_FLAG_FULL_TRY;
53 if (flags & librados::OPERATION_FULL_FORCE)
54 op_flags |= CEPH_OSD_FLAG_FULL_FORCE;
55 if (flags & librados::OPERATION_IGNORE_REDIRECT)
56 op_flags |= CEPH_OSD_FLAG_IGNORE_REDIRECT;
57 if (flags & librados::OPERATION_ORDERSNAP)
58 op_flags |= CEPH_OSD_FLAG_ORDERSNAP;
59
60 return op_flags;
61 }