Compare commits
247 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fb319ab5de | |||
| 1cb2c4bfdb | |||
| 632d91beae | |||
| e080504467 | |||
| aa63e53d04 | |||
| 6926ef1169 | |||
| f8977a765e | |||
| 5d2421bad4 | |||
| f5d39cf385 | |||
| e2cb602e33 | |||
| cecbd5cbdf | |||
| e8164fa77c | |||
| f704ff82a4 | |||
| 9c0641baab | |||
| 5bc9386587 | |||
| a547e637b8 | |||
| 7bda55e728 | |||
| 6b5e836a43 | |||
| 7540adc072 | |||
| 82ef40294e | |||
| 0a3faf9744 | |||
| 4321616c47 | |||
| f1a1925584 | |||
| 977cf2d586 | |||
| 6bb18287b9 | |||
| 65df1602ea | |||
| dc1eeaa798 | |||
| 95d7b57b43 | |||
| 4bd0193db5 | |||
| 570bcf896e | |||
| 675cabaa42 | |||
| 804d48f233 | |||
| ae476e040f | |||
| 30fd6bd235 | |||
| e61e83bf2e | |||
| 1add7973a9 | |||
| dae4d4a3ac | |||
| f7b9e58050 | |||
| 3430d480f2 | |||
| df3c9e92fb | |||
| 649f961fa0 | |||
| ed9b5e1f74 | |||
| 1bf01fccf7 | |||
| 93a4fe7597 | |||
| 1ca647a4b9 | |||
| 88108d8c98 | |||
| 6f79abf9c3 | |||
| 0d1cc731ad | |||
| 5e76bc0ad4 | |||
| 6f9f7e2e4a | |||
| 085cd612d4 | |||
| aa691eb6d2 | |||
| 468a2c36ab | |||
| 1980396784 | |||
| 91dd896847 | |||
| ca81cd2515 | |||
| 617d537253 | |||
| 35042fccaa | |||
| c89ec5de2b | |||
| 9c5f485aa9 | |||
| 4f4defa7e2 | |||
| 1ab48d0e0d | |||
| 9a0799bc61 | |||
| c817d5a04e | |||
| 0e8a2ef902 | |||
| d3ad3a08bd | |||
| dcf07e8b7f | |||
| dbd2b71d9d | |||
| 2cc4dd5e37 | |||
| e5f1594856 | |||
| 3d4788fc3e | |||
| 2fec333c00 | |||
| 460ba1ceb5 | |||
| 58319e8d44 | |||
| 4844e582ac | |||
| aaedf07964 | |||
| f33cca0cb6 | |||
| c613a7913d | |||
| 32b1af1542 | |||
| 0d92b145fb | |||
| 1fd4067b59 | |||
| 68c121780b | |||
| c63ac8cd1c | |||
| 0cef2ba27d | |||
| da92657ed9 | |||
| 339f628c14 | |||
| fe792d61ad | |||
| 945dc70d29 | |||
| e6b3456a69 | |||
| f6485b3ab1 | |||
| 2d1c189958 | |||
| af3d1fd70c | |||
| f52b5ed647 | |||
| 5c6ef2f610 | |||
| b651554bd7 | |||
| 80c32a846e | |||
| c59af85c9a | |||
| ad04d48a91 | |||
| 5cc1064abe | |||
| 0f36784c8d | |||
| 4641edbf6e | |||
| 7522ec1d1e | |||
| 4a7615cc28 | |||
| eacbe3b4a2 | |||
| 87c5192736 | |||
| 21a281eefc | |||
| 7c4f87d566 | |||
| 85d0b180fb | |||
| 2999191251 | |||
| 0434611ff3 | |||
| 4425090d12 | |||
| 4f320e6270 | |||
| 3ca3b39fdd | |||
| c46fd83b70 | |||
| 9189e1ac7a | |||
| f3cd3e3ded | |||
| 3e6e53903f | |||
| 1156a4001e | |||
| 511c2f1a19 | |||
| a4f5a49de7 | |||
| 629d997bbd | |||
| b2a3bb3cff | |||
| edd18f65bf | |||
| 944b374961 | |||
| 90dfc56cf2 | |||
| bf163e9b33 | |||
| 5897751ce1 | |||
| 73efddca7f | |||
| f9fa7d2971 | |||
| 1efbe7fbd6 | |||
| fed2cbacdf | |||
| bddfe865f2 | |||
| e56d4b2886 | |||
| b6062fd6dc | |||
| 8c6b1da0a2 | |||
| 1f11726563 | |||
| bba894de7e | |||
| 3715b23426 | |||
| f38d3f777f | |||
| 0114881ab4 | |||
| a786ef1504 | |||
| 2931b99be7 | |||
| 70e587526e | |||
| 9c86a420ea | |||
| 0c8ed285d3 | |||
| ddbcb5d66f | |||
| 8c750b960c | |||
| abdbef9e0e | |||
| 43b4197d44 | |||
| b0c18eeafc | |||
| 9c55220808 | |||
| 8a6545912f | |||
| e7a5495ba4 | |||
| 7c50250c92 | |||
| 1217c82a28 | |||
| 8d6f5530e7 | |||
| fe9cf79756 | |||
| 0d4b487537 | |||
| 13c95af02e | |||
| c8153cb68b | |||
| a82adb1178 | |||
| 0da31a640b | |||
| c5116a4d3d | |||
| f6c80111f0 | |||
| 65809728d6 | |||
| d7454e4e0a | |||
| 804031cde8 | |||
| f126724be1 | |||
| 9e94fbdfaf | |||
| b070296ace | |||
| 98f7173b37 | |||
| 4bd118debc | |||
| 78e076b5af | |||
| 976474060f | |||
| d60970c7cd | |||
| 4a2e67ce27 | |||
| 5cee54462c | |||
| 5e9e44ba9d | |||
| 03686a5492 | |||
| c4b36fdbe9 | |||
| ba585a6512 | |||
| 3aa610e268 | |||
| af4b4952f8 | |||
| cbed2814c2 | |||
| 92605c05f0 | |||
| fc46f52db9 | |||
| 7ccae1fdf3 | |||
| 1fdc7e124d | |||
| be247e2321 | |||
| 7d89214d12 | |||
| 189f095ebc | |||
| a7b4842132 | |||
| 07c18dd027 | |||
| 415b03ce74 | |||
| 3d9c93f7ab | |||
| 59dc7d2595 | |||
| bf4b7aed66 | |||
| 501243427a | |||
| 9e63d61879 | |||
| 19975cf06e | |||
| 7b01ed79a0 | |||
| f871a2726e | |||
| f52ea67e29 | |||
| df3db8be0e | |||
| da3f27e563 | |||
| d5be4a1cc6 | |||
| 950231a5bb | |||
| b774776eb5 | |||
| be7e755323 | |||
| 95e779c6c1 | |||
| 73dfbc7ffd | |||
| be70cfd29d | |||
| 2e1f76369c | |||
| 6daabd97d4 | |||
| fbd3e48156 | |||
| 6fc0065262 | |||
| df740a5e36 | |||
| cb586a7643 | |||
| 447d02458a | |||
| f0623329e5 | |||
| 624de89cce | |||
| 0e58e2f39c | |||
| 66d0b21911 | |||
| abcc0b7100 | |||
| cc4e5c3669 | |||
| 5c46ad7f7e | |||
| 5904d137cf | |||
| 21ae44b9d8 | |||
| ab7f0da7e2 | |||
| db4f36a951 | |||
| 0654a1fdc4 | |||
| 1e83c5c029 | |||
| e4cc93f966 | |||
| 26fd4ffbc6 | |||
| d463ff311e | |||
| ef8dc618c7 | |||
| fcc245cca3 | |||
| acfede696d | |||
| d6834c5aab | |||
| a09febb7ef | |||
| 9cdcdd7459 | |||
| 6c126d30be | |||
| 3913155591 | |||
| 648550e64f | |||
| 4deb491174 | |||
| d8a9bdfabe | |||
| 0d98dedd32 |
@@ -0,0 +1,55 @@
|
||||
--- ceph-15.2.2/src/common/crc32c_intel_fast_zero_asm.s.orig 2020-05-26 08:34:32.226201974 -0400
|
||||
+++ ceph-15.2.2/src/common/crc32c_intel_fast_zero_asm.s 2020-05-26 17:19:32.497201974 -0400
|
||||
@@ -1,5 +1,5 @@
|
||||
;
|
||||
-; Copyright 2012-2013 Intel Corporation All Rights Reserved.
|
||||
+; Copyright 2012-2015 Intel Corporation All Rights Reserved.
|
||||
; All rights reserved.
|
||||
;
|
||||
; http://opensource.org/licenses/BSD-3-Clause
|
||||
@@ -59,6 +59,19 @@
|
||||
xor rbx, rbx ;; rbx = crc1 = 0;
|
||||
xor r10, r10 ;; r10 = crc2 = 0;
|
||||
|
||||
+ cmp len, %%bSize*3*2
|
||||
+ jbe %%non_prefetch
|
||||
+
|
||||
+ %assign i 0
|
||||
+ %rep %%bSize/8 - 1
|
||||
+ crc32 rax, bufptmp ;; update crc0
|
||||
+ crc32 rbx, bufptmp ;; update crc1
|
||||
+ crc32 r10, bufptmp ;; update crc2
|
||||
+ %assign i (i+8)
|
||||
+ %endrep
|
||||
+ jmp %%next %+ %1
|
||||
+
|
||||
+%%non_prefetch:
|
||||
%assign i 0
|
||||
%rep %%bSize/8 - 1
|
||||
crc32 rax, bufptmp ;; update crc0
|
||||
@@ -66,6 +79,8 @@
|
||||
crc32 r10, bufptmp ;; update crc2
|
||||
%assign i (i+8)
|
||||
%endrep
|
||||
+
|
||||
+%%next %+ %1:
|
||||
crc32 rax, bufptmp ;; update crc0
|
||||
crc32 rbx, bufptmp ;; update crc1
|
||||
; SKIP ;crc32 r10, bufptmp ;; update crc2
|
||||
@@ -180,12 +195,15 @@
|
||||
%define crc_init_dw r8d
|
||||
%endif
|
||||
|
||||
-
|
||||
+ endbranch
|
||||
push rdi
|
||||
push rbx
|
||||
|
||||
mov rax, crc_init ;; rax = crc_init;
|
||||
|
||||
+ cmp len, 8
|
||||
+ jb less_than_8
|
||||
+
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; 1) ALIGN: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
|
||||
index 65ba10b0f1..eeedc29c37 100644
|
||||
--- a/src/common/CMakeLists.txt
|
||||
+++ b/src/common/CMakeLists.txt
|
||||
@@ -165,7 +165,7 @@ elseif(HAVE_ARMV8_CRC)
|
||||
crc32c_aarch64.c)
|
||||
endif(HAVE_INTEL)
|
||||
|
||||
-add_library(crc32 ${crc32_srcs})
|
||||
+add_library(crc32 STATIC ${crc32_srcs})
|
||||
if(HAVE_ARMV8_CRC)
|
||||
set_target_properties(crc32 PROPERTIES
|
||||
COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}")
|
||||
@@ -1,11 +1,8 @@
|
||||
--- ceph-14.2.6/src/common/bit_str.h.orig 2020-01-24 11:37:20.547679336 -0500
|
||||
+++ ceph-14.2.6/src/common/bit_str.h 2020-01-24 11:37:55.351904895 -0500
|
||||
@@ -14,7 +14,10 @@
|
||||
#ifndef CEPH_COMMON_BIT_STR_H
|
||||
#define CEPH_COMMON_BIT_STR_H
|
||||
|
||||
+#include <cstdint>
|
||||
+#include <iosfwd>
|
||||
--- ceph-15.1.0/src/common/bit_str.h.orig 2020-02-03 09:47:20.047149798 -0500
|
||||
+++ ceph-15.1.0/src/common/bit_str.h 2020-02-03 09:47:50.213149798 -0500
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <cstdint>
|
||||
#include <iosfwd>
|
||||
#include <functional>
|
||||
+#include <ostream>
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
--- ceph-14.2.6/src/librbd/api/PoolMetadata.h.orig 2020-01-24 12:39:23.738816885 -0500
|
||||
+++ ceph-14.2.6/src/librbd/api/PoolMetadata.h 2020-01-24 12:39:36.522902386 -0500
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "include/rados/librados_fwd.hpp"
|
||||
|
||||
#include <map>
|
||||
+#include <string>
|
||||
|
||||
namespace librbd {
|
||||
|
||||
@@ -1,135 +0,0 @@
|
||||
From 8db2a44c9438749be98d41fb309f10d5084805df Mon Sep 17 00:00:00 2001
|
||||
From: Jeff Layton <jlayton@redhat.com>
|
||||
Date: Fri, 17 Jan 2020 07:48:12 -0500
|
||||
Subject: [PATCH] mount.ceph: remove arbitrary limit on size of name= option
|
||||
|
||||
Aaron was getting back -ERANGE errors when trying to mount using
|
||||
a long name= option. The issue is that the destination buffer for the
|
||||
"key=" string is not big enough to hold long names.
|
||||
|
||||
When I overhauled the mount.ceph code recently, I made this buffer much
|
||||
smaller than before figuring that it didn't need to be any larger than
|
||||
the length of "secret=<base64 encoded key>".
|
||||
|
||||
In the case where the secret is set in the keyring though, this buffer
|
||||
needs to be able to hold a string like "key=client.<cephx name>". The
|
||||
cephx name can be of arbitrary length, however.
|
||||
|
||||
Rework the code to just safe_cat the strings directly into the options
|
||||
buffer, eliminating an extra copy and the need for an arbitrary limit.
|
||||
This also allows us to remove get_secret_option() from the the common
|
||||
code as well.
|
||||
|
||||
Fixes: https://tracker.ceph.com/issues/43649
|
||||
Reported-by: Aaron <aarongmldt@gmail.com>
|
||||
Signed-off-by: Jeff Layton <jlayton@redhat.com>
|
||||
---
|
||||
src/common/secret.h | 7 ------
|
||||
src/mount/mount.ceph.c | 45 ++++++++++++++++++++++++-------------
|
||||
src/mount/mount.ceph.h | 3 ---
|
||||
4 files changed, 30 insertions(+), 75 deletions(-)
|
||||
|
||||
diff --git a/src/common/secret.h b/src/common/secret.h
|
||||
index b681fa1ec7..5d2ad179dd 100644
|
||||
--- a/src/common/secret.h
|
||||
+++ b/src/common/secret.h
|
||||
@@ -7,13 +7,6 @@ extern "C" {
|
||||
|
||||
int read_secret_from_file(const char *filename, char *secret, size_t max_len);
|
||||
|
||||
-/*
|
||||
- * Attempts to add the secret to the kernel, but falls back to
|
||||
- * the old secret= option if the kernel is too old.
|
||||
- */
|
||||
-int get_secret_option(const char *secret, const char *key_name,
|
||||
- char *secret_option, size_t secret_option_len);
|
||||
-
|
||||
int set_kernel_secret(const char *secret, const char *key_name);
|
||||
|
||||
int is_kernel_secret(const char *key_name);
|
||||
diff --git a/src/mount/mount.ceph.c b/src/mount/mount.ceph.c
|
||||
index e970648c59..133bc554f5 100644
|
||||
--- a/src/mount/mount.ceph.c
|
||||
+++ b/src/mount/mount.ceph.c
|
||||
@@ -425,24 +425,39 @@ static void ceph_mount_info_free(struct ceph_mount_info *cmi)
|
||||
free(cmi->cmi_conf);
|
||||
}
|
||||
|
||||
-static int finalize_options(struct ceph_mount_info *cmi)
|
||||
+static int append_key_or_secret_option(struct ceph_mount_info *cmi)
|
||||
{
|
||||
- int pos;
|
||||
+ int pos = strlen(cmi->cmi_opts);
|
||||
|
||||
- if (cmi->cmi_secret[0] || is_kernel_secret(cmi->cmi_name)) {
|
||||
- int ret;
|
||||
- char secret_option[SECRET_OPTION_BUFSIZE];
|
||||
+ if (!cmi->cmi_secret[0] && !is_kernel_secret(cmi->cmi_name))
|
||||
+ return 0;
|
||||
|
||||
- ret = get_secret_option(cmi->cmi_secret, cmi->cmi_name,
|
||||
- secret_option, sizeof(secret_option));
|
||||
- if (ret < 0)
|
||||
+ if (pos)
|
||||
+ pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, ",");
|
||||
+
|
||||
+ /* when parsing kernel options (-o remount) we get '<hidden>' as the secret */
|
||||
+ if (cmi->cmi_secret[0] && (strcmp(cmi->cmi_secret, "<hidden>") != 0)) {
|
||||
+ int ret = set_kernel_secret(cmi->cmi_secret, cmi->cmi_name);
|
||||
+ if (ret < 0) {
|
||||
+ if (ret == -ENODEV || ret == -ENOSYS) {
|
||||
+ /* old kernel; fall back to secret= in options */
|
||||
+ pos = safe_cat(&cmi->cmi_opts,
|
||||
+ &cmi->cmi_opts_len, pos,
|
||||
+ "secret=");
|
||||
+ pos = safe_cat(&cmi->cmi_opts,
|
||||
+ &cmi->cmi_opts_len, pos,
|
||||
+ cmi->cmi_secret);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ fprintf(stderr, "adding ceph secret key to kernel failed: %s\n",
|
||||
+ strerror(-ret));
|
||||
return ret;
|
||||
-
|
||||
- pos = strlen(cmi->cmi_opts);
|
||||
- if (pos)
|
||||
- pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, ",");
|
||||
- pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, secret_option);
|
||||
+ }
|
||||
}
|
||||
+
|
||||
+ pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, "key=");
|
||||
+ pos = safe_cat(&cmi->cmi_opts, &cmi->cmi_opts_len, pos, cmi->cmi_name);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -493,9 +508,9 @@ int main(int argc, char *argv[])
|
||||
/* Ensure the ceph key_type is available */
|
||||
modprobe();
|
||||
|
||||
- retval = finalize_options(&cmi);
|
||||
+ retval = append_key_or_secret_option(&cmi);
|
||||
if (retval) {
|
||||
- fprintf(stderr, "couldn't finalize options: %d\n", retval);
|
||||
+ fprintf(stderr, "couldn't append secret option: %d\n", retval);
|
||||
retval = EX_USAGE;
|
||||
goto out;
|
||||
}
|
||||
diff --git a/src/mount/mount.ceph.h b/src/mount/mount.ceph.h
|
||||
index c563597c43..b61176923d 100644
|
||||
--- a/src/mount/mount.ceph.h
|
||||
+++ b/src/mount/mount.ceph.h
|
||||
@@ -21,9 +21,6 @@ extern "C" {
|
||||
/* Max Including null terminator */
|
||||
#define SECRET_BUFSIZE (MAX_SECRET_LEN + 1)
|
||||
|
||||
-/* Buffer size for secret= option */
|
||||
-#define SECRET_OPTION_BUFSIZE (sizeof("secret=") + MAX_SECRET_LEN + 1)
|
||||
-
|
||||
/* 2k should be enough for anyone? */
|
||||
#define MON_LIST_BUFSIZE 2048
|
||||
|
||||
--
|
||||
2.24.1
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ceph-16.1.0-43-g6b74fb5c/cmake/modules/Finduring.cmake.orig 2021-02-01 08:45:39.316108287 -0500
|
||||
+++ ceph-16.1.0-43-g6b74fb5c/cmake/modules/Finduring.cmake 2021-02-01 08:45:59.813665378 -0500
|
||||
@@ -5,7 +5,7 @@
|
||||
# uring_FOUND - True if uring found.
|
||||
|
||||
find_path(URING_INCLUDE_DIR liburing.h)
|
||||
-find_library(URING_LIBRARIES liburing.a liburing)
|
||||
+find_library(URING_LIBRARIES liburing.so liburing)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(uring DEFAULT_MSG URING_LIBRARIES URING_INCLUDE_DIR)
|
||||
@@ -0,0 +1,27 @@
|
||||
From 1999108aeb1f6f93a19ea7bb64c6ae8b87d1b264 Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Thu, 20 Jan 2022 05:33:13 -0800
|
||||
Subject: [PATCH] CET: Add CET marker to crc32c_intel_fast_zero_asm.s
|
||||
|
||||
Add .note.gnu.property section to crc32c_intel_fast_zero_asm.s to mark
|
||||
for IBT and SHSTK compatibility.
|
||||
---
|
||||
src/common/crc32c_intel_fast_zero_asm.s | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/common/crc32c_intel_fast_zero_asm.s b/src/common/crc32c_intel_fast_zero_asm.s
|
||||
index 216ecf639f3..2e291d858f3 100644
|
||||
--- a/src/common/crc32c_intel_fast_zero_asm.s
|
||||
+++ b/src/common/crc32c_intel_fast_zero_asm.s
|
||||
@@ -654,4 +654,8 @@ slversion crc32_iscsi_zero_00, 00, 02, 0014
|
||||
%ifidn __OUTPUT_FORMAT__, elf64
|
||||
; inform linker that this doesn't require executable stack
|
||||
section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
%endif
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
From bbcc1a69f787881f16156f3c789052942a564103 Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Thu, 20 Jan 2022 05:35:49 -0800
|
||||
Subject: [PATCH] isa-l/CET: Add CET marker to x86-64 crc32 assembly codes
|
||||
|
||||
Add .note.gnu.property section to x86-64 crc32 assembly codes to mark
|
||||
for IBT and SHSTK compatibility.
|
||||
---
|
||||
crc/crc32_gzip_refl_by16_10.asm | 9 +++++++++
|
||||
crc/crc32_gzip_refl_by8.asm | 9 +++++++++
|
||||
crc/crc32_gzip_refl_by8_02.asm | 9 +++++++++
|
||||
crc/crc32_ieee_01.asm | 8 ++++++++
|
||||
crc/crc32_ieee_02.asm | 9 +++++++++
|
||||
crc/crc32_ieee_by16_10.asm | 9 +++++++++
|
||||
crc/crc32_ieee_by4.asm | 9 +++++++++
|
||||
crc/crc32_iscsi_00.asm | 8 ++++++++
|
||||
crc/crc32_iscsi_01.asm | 8 ++++++++
|
||||
9 files changed, 78 insertions(+)
|
||||
|
||||
diff --git a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
|
||||
index 40236f6..b16874d 100644
|
||||
--- a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
|
||||
+++ b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
|
||||
@@ -566,3 +566,12 @@ global no_ %+ FUNCTION_NAME
|
||||
no_ %+ FUNCTION_NAME %+ :
|
||||
%endif
|
||||
%endif ; (AS_FEATURE_LEVEL) >= 10
|
||||
+
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/isa-l/crc/crc32_gzip_refl_by8.asm b/src/isa-l/crc/crc32_gzip_refl_by8.asm
|
||||
index 62f7e7d..97b0c4a 100644
|
||||
--- a/src/isa-l/crc/crc32_gzip_refl_by8.asm
|
||||
+++ b/src/isa-l/crc/crc32_gzip_refl_by8.asm
|
||||
@@ -622,3 +622,12 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
|
||||
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_gzip_refl_by8, 01, 00, 002c
|
||||
+
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/isa-l/crc/crc32_gzip_refl_by8_02.asm b/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
|
||||
index 80d849e..1d5a75f 100644
|
||||
--- a/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
|
||||
+++ b/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
|
||||
@@ -553,3 +553,12 @@ pshufb_shf_table:
|
||||
; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15
|
||||
dq 0x8786858483828100, 0x8f8e8d8c8b8a8988
|
||||
dq 0x0706050403020100, 0x000e0d0c0b0a0908
|
||||
+
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/isa-l/crc/crc32_ieee_01.asm b/src/isa-l/crc/crc32_ieee_01.asm
|
||||
index 32495ed..cfc443b 100644
|
||||
--- a/src/isa-l/crc/crc32_ieee_01.asm
|
||||
+++ b/src/isa-l/crc/crc32_ieee_01.asm
|
||||
@@ -653,3 +653,11 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_ieee_01, 01, 06, 0011
|
||||
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/isa-l/crc/crc32_ieee_02.asm b/src/isa-l/crc/crc32_ieee_02.asm
|
||||
index 8a472b0..dd7096a 100644
|
||||
--- a/src/isa-l/crc/crc32_ieee_02.asm
|
||||
+++ b/src/isa-l/crc/crc32_ieee_02.asm
|
||||
@@ -649,3 +649,12 @@ pshufb_shf_table:
|
||||
; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15
|
||||
dq 0x8786858483828100, 0x8f8e8d8c8b8a8988
|
||||
dq 0x0706050403020100, 0x000e0d0c0b0a0908
|
||||
+
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/isa-l/crc/crc32_ieee_by16_10.asm b/src/isa-l/crc/crc32_ieee_by16_10.asm
|
||||
index 200fd93..2afd597 100644
|
||||
--- a/src/isa-l/crc/crc32_ieee_by16_10.asm
|
||||
+++ b/src/isa-l/crc/crc32_ieee_by16_10.asm
|
||||
@@ -582,3 +582,12 @@ global no_ %+ FUNCTION_NAME
|
||||
no_ %+ FUNCTION_NAME %+ :
|
||||
%endif
|
||||
%endif ; (AS_FEATURE_LEVEL) >= 10
|
||||
+
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/isa-l/crc/crc32_ieee_by4.asm b/src/isa-l/crc/crc32_ieee_by4.asm
|
||||
index 39bed5a..847d0bd 100644
|
||||
--- a/src/isa-l/crc/crc32_ieee_by4.asm
|
||||
+++ b/src/isa-l/crc/crc32_ieee_by4.asm
|
||||
@@ -563,3 +563,12 @@ SHUF_MASK dq 0x08090A0B0C0D0E0F, 0x0001020304050607
|
||||
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_ieee_by4, 05, 02, 0017
|
||||
+
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/isa-l/crc/crc32_iscsi_00.asm b/src/isa-l/crc/crc32_iscsi_00.asm
|
||||
index 4f81e3a..3d6b2d1 100644
|
||||
--- a/src/isa-l/crc/crc32_iscsi_00.asm
|
||||
+++ b/src/isa-l/crc/crc32_iscsi_00.asm
|
||||
@@ -669,3 +669,11 @@ DD 0x54851c7f,0x89e3d7c4,0xeba4fdf8,0x36c23643
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_iscsi_00, 00, 04, 0014
|
||||
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/isa-l/crc/crc32_iscsi_01.asm b/src/isa-l/crc/crc32_iscsi_01.asm
|
||||
index 2a81517..c048413 100644
|
||||
--- a/src/isa-l/crc/crc32_iscsi_01.asm
|
||||
+++ b/src/isa-l/crc/crc32_iscsi_01.asm
|
||||
@@ -588,3 +588,11 @@ K_table:
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_iscsi_01, 01, 04, 0015
|
||||
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
From 72e6d27e08c86c16e8931739a5e6ecbc06b102d5 Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Thu, 20 Jan 2022 05:40:56 -0800
|
||||
Subject: [PATCH] spdk/isa-l/CET: Add CET marker to x86-64 crc32 assembly codes
|
||||
|
||||
Add .note.gnu.property section to x86-64 crc32 assembly codes to mark
|
||||
for IBT and SHSTK compatibility.
|
||||
---
|
||||
crc/crc32_gzip_refl_by8.asm | 9 +++++++++
|
||||
crc/crc32_ieee_01.asm | 8 ++++++++
|
||||
crc/crc32_ieee_by4.asm | 9 +++++++++
|
||||
crc/crc32_iscsi_00.asm | 8 ++++++++
|
||||
crc/crc32_iscsi_01.asm | 8 ++++++++
|
||||
5 files changed, 42 insertions(+)
|
||||
|
||||
diff --git a/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm b/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm
|
||||
index 62f7e7d..97b0c4a 100644
|
||||
--- a/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm
|
||||
+++ b/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm
|
||||
@@ -622,3 +622,12 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
|
||||
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_gzip_refl_by8, 01, 00, 002c
|
||||
+
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/spdk/isa-l/crc/crc32_ieee_01.asm b/src/spdk/isa-l/crc/crc32_ieee_01.asm
|
||||
index 32495ed..cfc443b 100644
|
||||
--- a/src/spdk/isa-l/crc/crc32_ieee_01.asm
|
||||
+++ b/src/spdk/isa-l/crc/crc32_ieee_01.asm
|
||||
@@ -653,3 +653,11 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_ieee_01, 01, 06, 0011
|
||||
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/spdk/isa-l/crc/crc32_ieee_by4.asm b/src/spdk/isa-l/crc/crc32_ieee_by4.asm
|
||||
index 39bed5a..847d0bd 100644
|
||||
--- a/src/spdk/isa-l/crc/crc32_ieee_by4.asm
|
||||
+++ b/src/spdk/isa-l/crc/crc32_ieee_by4.asm
|
||||
@@ -563,3 +563,12 @@ SHUF_MASK dq 0x08090A0B0C0D0E0F, 0x0001020304050607
|
||||
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_ieee_by4, 05, 02, 0017
|
||||
+
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/spdk/isa-l/crc/crc32_iscsi_00.asm b/src/spdk/isa-l/crc/crc32_iscsi_00.asm
|
||||
index 4f81e3a..3d6b2d1 100644
|
||||
--- a/src/spdk/isa-l/crc/crc32_iscsi_00.asm
|
||||
+++ b/src/spdk/isa-l/crc/crc32_iscsi_00.asm
|
||||
@@ -669,3 +669,11 @@ DD 0x54851c7f,0x89e3d7c4,0xeba4fdf8,0x36c23643
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_iscsi_00, 00, 04, 0014
|
||||
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
diff --git a/src/spdk/isa-l/crc/crc32_iscsi_01.asm b/src/spdk/isa-l/crc/crc32_iscsi_01.asm
|
||||
index 2a81517..c048413 100644
|
||||
--- a/src/spdk/isa-l/crc/crc32_iscsi_01.asm
|
||||
+++ b/src/spdk/isa-l/crc/crc32_iscsi_01.asm
|
||||
@@ -588,3 +588,11 @@ K_table:
|
||||
;;; func core, ver, snum
|
||||
slversion crc32_iscsi_01, 01, 04, 0015
|
||||
|
||||
+%ifidn __OUTPUT_FORMAT__, elf64
|
||||
+; inform linker that this doesn't require executable stack
|
||||
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
+; inform linker that this is compatible with IBT and SHSTK
|
||||
+section .note.gnu.property note alloc noexec align=8
|
||||
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
|
||||
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
|
||||
+%endif
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
--- ceph-16.2.6-681-gfdc003bc/src/tracing/bluestore.tp.orig 2021-12-07 08:02:04.682972474 -0500
|
||||
+++ ceph-16.2.6-681-gfdc003bc/src/tracing/bluestore.tp 2021-12-07 08:03:13.840771852 -0500
|
||||
@@ -1,3 +1,9 @@
|
||||
+
|
||||
+#ifdef __x86_64__
|
||||
+#undef STAP_SDT_ARG_CONSTRAINT
|
||||
+#define STAP_SDT_ARG_CONSTRAINT norx
|
||||
+#endif
|
||||
+
|
||||
#include "include/int_types.h"
|
||||
|
||||
TRACEPOINT_EVENT(bluestore, transaction_state_duration,
|
||||
--- ceph-16.2.6-681-gfdc003bc/src/tracing/librbd.tp.orig 2021-12-07 09:50:16.467579483 -0500
|
||||
+++ ceph-16.2.6-681-gfdc003bc/src/tracing/librbd.tp 2021-12-07 09:50:47.620026940 -0500
|
||||
@@ -1,3 +1,8 @@
|
||||
+#ifdef __x86_64__
|
||||
+#undef STAP_SDT_ARG_CONSTRAINT
|
||||
+#define STAP_SDT_ARG_CONSTRAINT norx
|
||||
+#endif
|
||||
+
|
||||
#include "tracing/tracing-common.h"
|
||||
#include "include/rbd/librbd.h"
|
||||
#include "include/int_types.h"
|
||||
@@ -0,0 +1,42 @@
|
||||
--- ceph-16.2.7/src/common/LogEntry.cc.orig 2022-01-17 13:52:10.799134159 -0500
|
||||
+++ ceph-16.2.7/src/common/LogEntry.cc 2022-01-17 13:52:47.244469274 -0500
|
||||
@@ -183,7 +183,7 @@
|
||||
return "crit";
|
||||
default:
|
||||
ceph_abort();
|
||||
- return 0;
|
||||
+ return "";
|
||||
}
|
||||
}
|
||||
|
||||
--- ceph-16.2.7/src/test/librados/tier_cxx.cc.orig 2022-01-19 09:30:47.209459506 -0500
|
||||
+++ ceph-16.2.7/src/test/librados/tier_cxx.cc 2022-01-19 10:02:47.783240298 -0500
|
||||
@@ -120,7 +120,7 @@
|
||||
}
|
||||
|
||||
void check_fp_oid_refcount(librados::IoCtx& ioctx, std::string foid, uint64_t count,
|
||||
- std::string fp_algo = NULL)
|
||||
+ std::string fp_algo = "")
|
||||
{
|
||||
bufferlist t;
|
||||
int size = foid.length();
|
||||
@@ -148,7 +148,7 @@
|
||||
ASSERT_LE(count, refs.count());
|
||||
}
|
||||
|
||||
-string get_fp_oid(string oid, std::string fp_algo = NULL)
|
||||
+string get_fp_oid(string oid, std::string fp_algo = "")
|
||||
{
|
||||
if (fp_algo == "sha1") {
|
||||
unsigned char fingerprint[CEPH_CRYPTO_SHA1_DIGESTSIZE + 1];
|
||||
--- ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h.orig 2022-02-11 17:21:40.268627997 -0500
|
||||
+++ ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h 2022-02-11 17:21:57.155325437 -0500
|
||||
@@ -466,7 +466,7 @@
|
||||
|
||||
std::string print(int ident) override
|
||||
{
|
||||
- return std::string(0);
|
||||
+ return std::string("");
|
||||
}
|
||||
|
||||
void push_argument(base_statement* arg)
|
||||
@@ -0,0 +1,19 @@
|
||||
--- ceph-18.0.0-3078-gc4847bf8/src/rgw/driver/dbstore/CMakeLists.txt.orig 2023-05-10 08:23:50.000000000 -0400
|
||||
+++ ceph-18.0.0-3078-gc4847bf8/src/rgw/driver/dbstore/CMakeLists.txt 2023-05-11 08:21:13.794152904 -0400
|
||||
@@ -24,7 +24,7 @@
|
||||
dbstore_mgr.cc
|
||||
)
|
||||
|
||||
-add_library(dbstore_lib ${dbstore_srcs})
|
||||
+add_library(dbstore_lib STATIC ${dbstore_srcs})
|
||||
target_include_directories(dbstore_lib
|
||||
PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
|
||||
PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/store/rados"
|
||||
@@ -49,6 +49,7 @@
|
||||
|
||||
# add pthread library
|
||||
set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} pthread)
|
||||
+set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} global)
|
||||
|
||||
find_package(gtest QUIET)
|
||||
if(WITH_TESTS)
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ceph-17.1.0-175-g086c8f84/src/arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake.orig 2022-04-08 11:27:53.593570634 -0400
|
||||
+++ ceph-17.1.0-175-g086c8f84/src/arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake 2022-04-08 11:28:20.778087653 -0400
|
||||
@@ -1991,7 +1991,7 @@
|
||||
|
||||
if((NOT ARROW_SIMD_LEVEL STREQUAL "NONE") OR (NOT ARROW_RUNTIME_SIMD_LEVEL STREQUAL "NONE"
|
||||
))
|
||||
- set(xsimd_SOURCE "BUNDLED")
|
||||
+ set(xsimd_SOURCE "SYSTEM")
|
||||
resolve_dependency(xsimd)
|
||||
# TODO: Don't use global includes but rather target_include_directories
|
||||
include_directories(SYSTEM ${XSIMD_INCLUDE_DIR})
|
||||
@@ -0,0 +1,42 @@
|
||||
--- ceph-18.1.2/src/common/subsys_types.h.orig 2023-06-27 15:59:59.000000000 -0400
|
||||
+++ ceph-18.1.2/src/common/subsys_types.h 2023-07-04 19:36:55.941238973 -0400
|
||||
@@ -54,7 +54,7 @@
|
||||
#undef DEFAULT_SUBSYS
|
||||
}
|
||||
|
||||
-constexpr static std::uint8_t
|
||||
+constexpr static uint8_t
|
||||
ceph_subsys_get_max_default_level(const std::size_t subidx) {
|
||||
const auto item = ceph_subsys_get_as_array()[subidx];
|
||||
return std::max(item.log_level, item.gather_level);
|
||||
--- ceph-18.1.2/src/msg/async/crypto_onwire.h.orig 2023-06-27 15:59:59.000000000 -0400
|
||||
+++ ceph-18.1.2/src/msg/async/crypto_onwire.h 2023-07-04 19:36:55.957238704 -0400
|
||||
@@ -95,7 +95,7 @@
|
||||
// Transmitter can append extra bytes of ciphertext at the -final step.
|
||||
// This method return how much was added, and thus let client translate
|
||||
// plaintext size into ciphertext size to grab from wire.
|
||||
- virtual std::uint32_t get_extra_size_at_final() = 0;
|
||||
+ virtual uint32_t get_extra_size_at_final() = 0;
|
||||
|
||||
// Instance of RxHandler must be reset before doing any decrypt-update
|
||||
// step. This applies also to situation when decrypt-final was already
|
||||
--- ceph-18.1.2/src/rocksdb/table/block_based/data_block_hash_index.h.orig 2023-05-24 15:55:23.000000000 -0400
|
||||
+++ ceph-18.1.2/src/rocksdb/table/block_based/data_block_hash_index.h 2023-07-04 19:36:55.971238469 -0400
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
+#include <cstdint>
|
||||
|
||||
#include "rocksdb/slice.h"
|
||||
|
||||
--- ceph-18.1.2/src/rocksdb/util/string_util.h.orig 2023-05-24 15:55:23.000000000 -0400
|
||||
+++ ceph-18.1.2/src/rocksdb/util/string_util.h 2023-07-04 19:36:55.991238133 -0400
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
+#include <cstdint>
|
||||
|
||||
#include "rocksdb/rocksdb_namespace.h"
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
--- ceph-18.0.0-1810-g728e8ac0/src/osd/scrubber/scrub_backend.h.orig 2023-01-18 16:35:03.398700052 -0500
|
||||
+++ ceph-18.0.0-1810-g728e8ac0/src/osd/scrubber/scrub_backend.h 2023-01-18 16:37:55.882677965 -0500
|
||||
@@ -183,20 +183,20 @@
|
||||
// note: 'if' chain, as hard to consistently (on all compilers) avoid some
|
||||
// warnings for a switch plus multiple return paths
|
||||
if (as_auth.possible_auth == shard_as_auth_t::usable_t::not_usable) {
|
||||
- return format_to(ctx.out(),
|
||||
- "{{shard-not-usable:{}}}",
|
||||
- as_auth.error_text);
|
||||
+ return fmt::format_to(ctx.out(),
|
||||
+ "{{shard-not-usable:{}}}",
|
||||
+ as_auth.error_text.c_str());
|
||||
}
|
||||
if (as_auth.possible_auth == shard_as_auth_t::usable_t::not_found) {
|
||||
- return format_to(ctx.out(), "{{shard-not-found}}");
|
||||
+ return fmt::format_to(ctx.out(), "{{shard-not-found}}");
|
||||
}
|
||||
- return format_to(ctx.out(),
|
||||
- "{{shard-usable: soid:{} {{txt:{}}} }}",
|
||||
- as_auth.oi.soid,
|
||||
- as_auth.error_text);
|
||||
+ return fmt::format_to(ctx.out(),
|
||||
+ "{{shard-usable: soid:{} {{txt:{}}} }}",
|
||||
+ as_auth.oi.soid,
|
||||
+ as_auth.error_text.c_str());
|
||||
|
||||
} else {
|
||||
- return format_to(
|
||||
+ return fmt::format_to(
|
||||
ctx.out(),
|
||||
"usable:{} soid:{} {{txt:{}}}",
|
||||
(as_auth.possible_auth == shard_as_auth_t::usable_t::usable) ? "yes"
|
||||
@@ -0,0 +1,199 @@
|
||||
--- ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc.orig 2023-02-08 16:01:53.800709761 -0500
|
||||
+++ ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc 2023-02-11 05:06:14.954254050 -0500
|
||||
@@ -507,11 +507,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
- dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {}",
|
||||
+ dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {:p}",
|
||||
__func__,
|
||||
ret_auth.auth_shard,
|
||||
ho,
|
||||
- ret_auth.auth_oi)
|
||||
+ (void*)&ret_auth.auth_oi)
|
||||
<< dendl;
|
||||
|
||||
return ret_auth;
|
||||
@@ -1171,23 +1171,23 @@
|
||||
|
||||
if (auth.digest_present && candidate.digest_present &&
|
||||
auth.digest != candidate.digest) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "data_digest {:#x} != data_digest {:#x} from shard {}",
|
||||
- candidate.digest,
|
||||
- auth.digest,
|
||||
- auth_shard);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "data_digest {:#x} != data_digest {:#x} from shard {}",
|
||||
+ candidate.digest,
|
||||
+ auth.digest,
|
||||
+ auth_shard);
|
||||
error = true;
|
||||
obj_result.set_data_digest_mismatch();
|
||||
}
|
||||
|
||||
if (auth.omap_digest_present && candidate.omap_digest_present &&
|
||||
auth.omap_digest != candidate.omap_digest) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
|
||||
- sep(error),
|
||||
- candidate.omap_digest,
|
||||
- auth.omap_digest,
|
||||
- auth_shard);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
|
||||
+ sep(error),
|
||||
+ candidate.omap_digest,
|
||||
+ auth.omap_digest,
|
||||
+ auth_shard);
|
||||
obj_result.set_omap_digest_mismatch();
|
||||
}
|
||||
|
||||
@@ -1195,24 +1195,24 @@
|
||||
if (m_is_replicated) {
|
||||
if (auth_oi.is_data_digest() && candidate.digest_present &&
|
||||
auth_oi.data_digest != candidate.digest) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}data_digest {:#x} != data_digest {:#x} from auth oi {}",
|
||||
- sep(error),
|
||||
- candidate.digest,
|
||||
- auth_oi.data_digest,
|
||||
- auth_oi);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}data_digest {:#x} != data_digest {:#x} from auth oi {:p}",
|
||||
+ sep(error),
|
||||
+ candidate.digest,
|
||||
+ auth_oi.data_digest,
|
||||
+ (void*)&auth_oi);
|
||||
shard_result.set_data_digest_mismatch_info();
|
||||
}
|
||||
|
||||
// for replicated:
|
||||
if (auth_oi.is_omap_digest() && candidate.omap_digest_present &&
|
||||
auth_oi.omap_digest != candidate.omap_digest) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {}",
|
||||
- sep(error),
|
||||
- candidate.omap_digest,
|
||||
- auth_oi.omap_digest,
|
||||
- auth_oi);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {:p}",
|
||||
+ sep(error),
|
||||
+ candidate.omap_digest,
|
||||
+ auth_oi.omap_digest,
|
||||
+ (void*)&auth_oi);
|
||||
shard_result.set_omap_digest_mismatch_info();
|
||||
}
|
||||
}
|
||||
@@ -1241,7 +1241,7 @@
|
||||
auth_bl.push_back(auth_attr->second);
|
||||
|
||||
if (!can_bl.contents_equal(auth_bl)) {
|
||||
- format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
|
||||
+ fmt::format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
|
||||
obj_result.set_object_info_inconsistency();
|
||||
}
|
||||
}
|
||||
@@ -1261,7 +1261,7 @@
|
||||
auth_bl.push_back(auth_attr->second);
|
||||
|
||||
if (!can_bl.contents_equal(auth_bl)) {
|
||||
- format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
|
||||
+ fmt::format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
|
||||
obj_result.set_snapset_inconsistency();
|
||||
}
|
||||
}
|
||||
@@ -1284,7 +1284,7 @@
|
||||
auth_bl.push_back(auth_hi->second);
|
||||
|
||||
if (!can_bl.contents_equal(auth_bl)) {
|
||||
- format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
|
||||
+ fmt::format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
|
||||
obj_result.set_hinfo_inconsistency();
|
||||
}
|
||||
}
|
||||
@@ -1296,22 +1296,22 @@
|
||||
|
||||
uint64_t oi_size = logical_to_ondisk_size(auth_oi.size);
|
||||
if (oi_size != candidate.size) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}size {} != size {} from auth oi {}",
|
||||
- sep(error),
|
||||
- candidate.size,
|
||||
- oi_size,
|
||||
- auth_oi);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}size {} != size {} from auth oi {:p}",
|
||||
+ sep(error),
|
||||
+ candidate.size,
|
||||
+ oi_size,
|
||||
+ (void*)&auth_oi);
|
||||
shard_result.set_size_mismatch_info();
|
||||
}
|
||||
|
||||
if (auth.size != candidate.size) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}size {} != size {} from shard {}",
|
||||
- sep(error),
|
||||
- candidate.size,
|
||||
- auth.size,
|
||||
- auth_shard);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}size {} != size {} from shard {}",
|
||||
+ sep(error),
|
||||
+ candidate.size,
|
||||
+ auth.size,
|
||||
+ auth_shard);
|
||||
obj_result.set_size_mismatch();
|
||||
}
|
||||
|
||||
@@ -1320,11 +1320,11 @@
|
||||
if (candidate.size > m_conf->osd_max_object_size &&
|
||||
!obj_result.has_size_too_large()) {
|
||||
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}size {} > {} is too large",
|
||||
- sep(error),
|
||||
- candidate.size,
|
||||
- m_conf->osd_max_object_size);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}size {} > {} is too large",
|
||||
+ sep(error),
|
||||
+ candidate.size,
|
||||
+ m_conf->osd_max_object_size);
|
||||
obj_result.set_size_too_large();
|
||||
}
|
||||
|
||||
@@ -1340,10 +1340,10 @@
|
||||
|
||||
auto cand = candidate.attrs.find(k);
|
||||
if (cand == candidate.attrs.end()) {
|
||||
- format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
|
||||
+ fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
|
||||
obj_result.set_attr_name_mismatch();
|
||||
} else if (cand->second.cmp(v)) {
|
||||
- format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
|
||||
+ fmt::format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
|
||||
obj_result.set_attr_value_mismatch();
|
||||
}
|
||||
}
|
||||
@@ -1356,7 +1356,7 @@
|
||||
|
||||
auto in_auth = auth.attrs.find(k);
|
||||
if (in_auth == auth.attrs.end()) {
|
||||
- format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
|
||||
+ fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
|
||||
obj_result.set_attr_name_mismatch();
|
||||
}
|
||||
}
|
||||
@@ -1823,8 +1823,7 @@
|
||||
SnapMapReaderI& snaps_getter)
|
||||
{
|
||||
using result_t = Scrub::SnapMapReaderI::result_t;
|
||||
- dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset)
|
||||
- << dendl;
|
||||
+ // dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset) << dendl;
|
||||
|
||||
auto p = snapset.clone_snaps.find(hoid.snap);
|
||||
if (p == snapset.clone_snaps.end()) {
|
||||
@@ -0,0 +1,151 @@
|
||||
--- ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h.orig 2023-04-05 11:09:51.000000000 -0400
|
||||
+++ ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h 2023-04-21 16:22:26.665067333 -0400
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <mutex>
|
||||
|
||||
#include "rocksdb/version.h"
|
||||
-#include "rocksdb/cache.h"
|
||||
+#include "rocksdb/advanced_cache.h"
|
||||
#include "include/ceph_hash.h"
|
||||
#include "common/PriorityCache.h"
|
||||
//#include "hash.h"
|
||||
@@ -26,7 +26,8 @@
|
||||
|
||||
namespace rocksdb_cache {
|
||||
|
||||
-using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
|
||||
+// using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
|
||||
+using DeleterFn = void (*)(rocksdb::Cache::ObjectPtr obj, rocksdb::MemoryAllocator* allocator);
|
||||
|
||||
// Single cache shard interface.
|
||||
class CacheShard {
|
||||
@@ -34,11 +35,19 @@
|
||||
CacheShard() = default;
|
||||
virtual ~CacheShard() = default;
|
||||
|
||||
- virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
|
||||
- size_t charge,
|
||||
- DeleterFn deleter,
|
||||
- rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0;
|
||||
- virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) = 0;
|
||||
+ virtual rocksdb::Status Insert(const rocksdb::Slice& key,
|
||||
+ rockdb::ObjectPtr obj,
|
||||
+ const rocksdb::CacheItemHelper* helper,
|
||||
+ size_t charge,
|
||||
+ rocksdb:Handle** handle = nullptr,
|
||||
+ Rocksdb::Priority priority = Rocksdb::Priority::LOW)
|
||||
+ virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key,
|
||||
+ const rocksdb::CacheItemHelper* helper = nullptr,
|
||||
+ rocksdb::CreateContext* create_context = nullptr,
|
||||
+ rocksdb::Priority priority = rocksdb::Priority::LOW,
|
||||
+ bool wait = true,
|
||||
+ rocksdb::Statistics* stats = nullptr);
|
||||
+
|
||||
virtual bool Ref(rocksdb::Cache::Handle* handle) = 0;
|
||||
virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) = 0;
|
||||
virtual void Erase(const rocksdb::Slice& key, uint32_t hash) = 0;
|
||||
@@ -68,8 +77,8 @@
|
||||
virtual const char* Name() const override = 0;
|
||||
virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge,
|
||||
DeleterFn,
|
||||
- rocksdb::Cache::Handle** handle, Priority priority) override;
|
||||
- virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override;
|
||||
+ rocksdb::Cache::Handle** handle, Priority priority);
|
||||
+ virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats);
|
||||
virtual bool Ref(rocksdb::Cache::Handle* handle) override;
|
||||
virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
|
||||
virtual void* Value(Handle* handle) override = 0;
|
||||
@@ -84,14 +93,17 @@
|
||||
virtual size_t GetPinnedUsage() const override;
|
||||
virtual size_t GetCharge(Handle* handle) const = 0;
|
||||
#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
|
||||
- virtual DeleterFn GetDeleter(Handle* handle) const override;
|
||||
+ virtual DeleterFn GetDeleter(Handle* handle) const;
|
||||
#endif
|
||||
virtual void DisownData() override = 0;
|
||||
#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
|
||||
+ virtual const rocksdb::CacheItemHelper* GetCacheItemHelper(rocksdb::Cache::Handle* handle) const;
|
||||
virtual void ApplyToAllEntries(
|
||||
- const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
|
||||
- DeleterFn deleter)>& callback,
|
||||
- const ApplyToAllEntriesOptions& opts) override;
|
||||
+ const std::function<void(const rocksdb::Slice& key,
|
||||
+ rocksdb::Cache::ObjectPtr obj,
|
||||
+ size_t charge,
|
||||
+ const rocksdb::CacheItemHelper* helper)>& callback,
|
||||
+ const rocksdb::ApplyToAllEntriesOptions& opts);
|
||||
#else
|
||||
virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
|
||||
bool thread_safe) override;
|
||||
--- ceph-17.2.6/src/kv/RocksDBStore.cc.orig 2023-04-05 11:09:51.000000000 -0400
|
||||
+++ ceph-17.2.6/src/kv/RocksDBStore.cc 2023-04-20 16:19:29.280669881 -0400
|
||||
@@ -903,6 +903,19 @@
|
||||
// base_name - name of column without shard suffix: "-"+number
|
||||
// options - additional options to apply
|
||||
// cf_opt - column family options to update
|
||||
+
|
||||
+rocksdb::Status GetColumnFamilyOptionsFromMap(
|
||||
+ const rocksdb::ColumnFamilyOptions& base_options,
|
||||
+ const std::unordered_map<std::string, std::string>& opts_map,
|
||||
+ rocksdb::ColumnFamilyOptions* new_options, bool input_strings_escaped,
|
||||
+ bool ignore_unknown_options) {
|
||||
+ rocksdb::ConfigOptions config_options;
|
||||
+ config_options.ignore_unknown_options = ignore_unknown_options;
|
||||
+ config_options.input_strings_escaped = input_strings_escaped;
|
||||
+ return rocksdb::GetColumnFamilyOptionsFromMap(config_options, base_options, opts_map,
|
||||
+ new_options);
|
||||
+}
|
||||
+
|
||||
int RocksDBStore::update_column_family_options(const std::string& base_name,
|
||||
const std::string& more_options,
|
||||
rocksdb::ColumnFamilyOptions* cf_opt)
|
||||
@@ -916,7 +929,7 @@
|
||||
<< " options=" << more_options << dendl;
|
||||
return r;
|
||||
}
|
||||
- status = rocksdb::GetColumnFamilyOptionsFromMap(*cf_opt, options_map, cf_opt);
|
||||
+ status = GetColumnFamilyOptionsFromMap(*cf_opt, options_map, cf_opt, false, false);
|
||||
if (!status.ok()) {
|
||||
dout(5) << __func__ << " invalid column family optionsp; column family="
|
||||
<< base_name << " options=" << more_options << dendl;
|
||||
@@ -937,6 +950,20 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+rocksdb::Status GetBlockBasedTableOptionsFromMap(
|
||||
+ const rocksdb::BlockBasedTableOptions& table_options,
|
||||
+ const std::unordered_map<std::string, std::string>& opts_map,
|
||||
+ rocksdb::BlockBasedTableOptions* new_table_options, bool input_strings_escaped,
|
||||
+ bool ignore_unknown_options) {
|
||||
+ rocksdb::ConfigOptions config_options;
|
||||
+ config_options.input_strings_escaped = input_strings_escaped;
|
||||
+ config_options.ignore_unknown_options = ignore_unknown_options;
|
||||
+ config_options.invoke_prepare_options = false;
|
||||
+
|
||||
+ return rocksdb::GetBlockBasedTableOptionsFromMap(config_options, table_options,
|
||||
+ opts_map, new_table_options);
|
||||
+}
|
||||
+
|
||||
int RocksDBStore::apply_block_cache_options(const std::string& column_name,
|
||||
const std::string& block_cache_opt,
|
||||
rocksdb::ColumnFamilyOptions* cf_opt)
|
||||
@@ -981,7 +1008,7 @@
|
||||
}
|
||||
|
||||
rocksdb::BlockBasedTableOptions column_bbt_opts;
|
||||
- status = GetBlockBasedTableOptionsFromMap(bbt_opts, cache_options_map, &column_bbt_opts);
|
||||
+ status = GetBlockBasedTableOptionsFromMap(bbt_opts, cache_options_map, &column_bbt_opts, false, false);
|
||||
if (!status.ok()) {
|
||||
dout(5) << __func__ << " invalid block cache options; column=" << column_name
|
||||
<< " options=" << block_cache_opt << dendl;
|
||||
--- ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h.orig 2023-04-21 10:11:00.180387609 -0400
|
||||
+++ ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h 2023-04-21 10:17:15.527816193 -0400
|
||||
@@ -121,7 +121,7 @@
|
||||
void Free() {
|
||||
ceph_assert((refs == 1 && InCache()) || (refs == 0 && !InCache()));
|
||||
if (deleter) {
|
||||
- (*deleter)(key(), value);
|
||||
+ (*deleter)(this, nullptr);
|
||||
}
|
||||
delete[] key_data;
|
||||
delete this;
|
||||
@@ -0,0 +1,17 @@
|
||||
--- ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_amqp.cc.orig 2023-03-14 18:22:35.636864260 -0400
|
||||
+++ ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_amqp.cc 2023-03-14 18:24:36.362756771 -0400
|
||||
@@ -2,10 +2,10 @@
|
||||
// vim: ts=8 sw=2 smarttab ft=cpp
|
||||
|
||||
#include "rgw_amqp.h"
|
||||
-#include <amqp.h>
|
||||
-#include <amqp_ssl_socket.h>
|
||||
-#include <amqp_tcp_socket.h>
|
||||
-#include <amqp_framing.h>
|
||||
+#include <rabbitmq-c/amqp.h>
|
||||
+#include <rabbitmq-c/ssl_socket.h>
|
||||
+#include <rabbitmq-c/tcp_socket.h>
|
||||
+#include <rabbitmq-c/framing.h>
|
||||
#include "include/ceph_assert.h"
|
||||
#include <sstream>
|
||||
#include <cstring>
|
||||
@@ -0,0 +1,61 @@
|
||||
--- ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_asio_client.cc.orig 2023-03-14 18:46:02.037195570 -0400
|
||||
+++ ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_asio_client.cc 2023-03-14 18:55:14.446438244 -0400
|
||||
@@ -39,11 +39,13 @@
|
||||
const auto& value = header->value();
|
||||
|
||||
if (field == beast::http::field::content_length) {
|
||||
- env.set("CONTENT_LENGTH", value.to_string());
|
||||
+ std::string scratch{value.data(), value.size()};
|
||||
+ env.set("CONTENT_LENGTH", scratch.c_str());
|
||||
continue;
|
||||
}
|
||||
if (field == beast::http::field::content_type) {
|
||||
- env.set("CONTENT_TYPE", value.to_string());
|
||||
+ std::string scratch{value.data(), value.size()};
|
||||
+ env.set("CONTENT_TYPE", scratch.c_str());
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -62,26 +64,37 @@
|
||||
}
|
||||
*dest = '\0';
|
||||
|
||||
- env.set(buf, value.to_string());
|
||||
+ std::string scratch{value.data(), value.size()};
|
||||
+ env.set(buf, scratch.c_str());
|
||||
}
|
||||
|
||||
int major = request.version() / 10;
|
||||
int minor = request.version() % 10;
|
||||
env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor));
|
||||
|
||||
- env.set("REQUEST_METHOD", request.method_string().to_string());
|
||||
+ {
|
||||
+ std::string scratch {request.method_string().data(),request.method_string().size()};
|
||||
+ env.set("REQUEST_METHOD", scratch.c_str());
|
||||
+ }
|
||||
|
||||
// split uri from query
|
||||
auto uri = request.target();
|
||||
auto pos = uri.find('?');
|
||||
if (pos != uri.npos) {
|
||||
auto query = uri.substr(pos + 1);
|
||||
- env.set("QUERY_STRING", query.to_string());
|
||||
+ std::string scratch{query.data(), query.size()};
|
||||
+ env.set("QUERY_STRING", scratch.c_str());
|
||||
uri = uri.substr(0, pos);
|
||||
}
|
||||
- env.set("SCRIPT_URI", uri.to_string());
|
||||
+ {
|
||||
+ std::string scratch {uri.data(), uri.size()};
|
||||
+ env.set("SCRIPT_URI", scratch.c_str());
|
||||
+ }
|
||||
|
||||
- env.set("REQUEST_URI", request.target().to_string());
|
||||
+ {
|
||||
+ std::string scratch {request.target().data(), request.target().size()};
|
||||
+ env.set("REQUEST_URI", scratch.c_str());
|
||||
+ }
|
||||
|
||||
char port_buf[16];
|
||||
snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port());
|
||||
@@ -0,0 +1,24 @@
|
||||
--- ceph-18.0.0-2950-g1c931bc4/cmake/modules/BuildBoost.cmake.orig 2023-04-28 18:30:19.133064577 -0400
|
||||
+++ ceph-18.0.0-2950-g1c931bc4/cmake/modules/BuildBoost.cmake 2023-04-28 18:31:55.290354383 -0400
|
||||
@@ -104,12 +104,21 @@
|
||||
set(user_config ${CMAKE_BINARY_DIR}/user-config.jam)
|
||||
# edit the user-config.jam so b2 will be able to use the specified
|
||||
# toolset and python
|
||||
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
||||
+ file(WRITE ${user_config}
|
||||
+ "using ${toolset}"
|
||||
+ " : "
|
||||
+ " : ${CMAKE_CXX_COMPILER}"
|
||||
+ " : <compileflags>-fPIC <compileflags>-w <compileflags>-fcf-protection <compileflags>-Wno-everything"
|
||||
+ " ;\n")
|
||||
+else()
|
||||
file(WRITE ${user_config}
|
||||
"using ${toolset}"
|
||||
" : "
|
||||
" : ${CMAKE_CXX_COMPILER}"
|
||||
" : <compileflags>-fPIC <compileflags>-w <compileflags>-Wno-everything"
|
||||
" ;\n")
|
||||
+endif()
|
||||
if(with_python_version)
|
||||
find_package(Python3 ${with_python_version} QUIET REQUIRED
|
||||
COMPONENTS Development)
|
||||
@@ -0,0 +1,61 @@
|
||||
--- ceph-17.2.6/src/boost/libs/context/src/asm/make_x86_64_sysv_elf_gas.S.orig 2023-04-30 14:25:35.009605033 -0400
|
||||
+++ ceph-17.2.6/src/boost/libs/context/src/asm/make_x86_64_sysv_elf_gas.S 2023-04-30 14:28:32.239465067 -0400
|
||||
@@ -80,3 +80,18 @@
|
||||
|
||||
/* Mark that we don't need executable stack. */
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
+.section .note.gnu.property
|
||||
+.align=8
|
||||
+
|
||||
+ .byte 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
||||
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
|
||||
+ .byte 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
|
||||
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
+ .byte 0x01, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
|
||||
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
+ .byte 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
||||
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
|
||||
+ .byte 0x02, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
|
||||
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
+
|
||||
--- ceph-17.2.6/src/boost/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S.orig 2023-04-30 14:25:35.008605050 -0400
|
||||
+++ ceph-17.2.6/src/boost/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S 2023-04-30 14:27:50.145210847 -0400
|
||||
@@ -89,3 +89,17 @@
|
||||
|
||||
/* Mark that we don't need executable stack. */
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
+.section .note.gnu.property
|
||||
+.align=8
|
||||
+
|
||||
+ .byte 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
||||
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
|
||||
+ .byte 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
|
||||
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
+ .byte 0x01, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
|
||||
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
+ .byte 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
||||
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
|
||||
+ .byte 0x02, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
|
||||
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
--- ceph-17.2.6/src/boost/libs/context/src/asm/ontop_x86_64_sysv_elf_gas.S.orig 2023-04-30 14:25:35.009605033 -0400
|
||||
+++ ceph-17.2.6/src/boost/libs/context/src/asm/ontop_x86_64_sysv_elf_gas.S 2023-04-30 14:29:30.402434597 -0400
|
||||
@@ -92,3 +92,17 @@
|
||||
|
||||
/* Mark that we don't need executable stack. */
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
+.section .note.gnu.property
|
||||
+.align=8
|
||||
+
|
||||
+ .byte 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
|
||||
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
|
||||
+ .byte 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
|
||||
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
+ .byte 0x01, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
|
||||
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
+ .byte 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
|
||||
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
|
||||
+ .byte 0x02, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
|
||||
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
@@ -0,0 +1,24 @@
|
||||
--- ceph-18.1.2/src/pybind/rbd/rbd.pyx.orig 2023-07-21 13:30:08.156825317 -0400
|
||||
+++ ceph-18.1.2/src/pybind/rbd/rbd.pyx 2023-07-24 09:09:27.930137117 -0400
|
||||
@@ -371,10 +371,10 @@
|
||||
cdef rados_ioctx_t convert_ioctx(rados.Ioctx ioctx) except? NULL:
|
||||
return <rados_ioctx_t>ioctx.io
|
||||
|
||||
-cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) with gil:
|
||||
+cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) noexcept with gil:
|
||||
return (<object>ptr)(offset, total)
|
||||
|
||||
-cdef int no_op_progress_callback(uint64_t offset, uint64_t total, void* ptr):
|
||||
+cdef int no_op_progress_callback(uint64_t offset, uint64_t total, void* ptr) noexcept:
|
||||
return 0
|
||||
|
||||
def cstr(val, name, encoding="utf-8", opt=False):
|
||||
@@ -426,7 +426,7 @@
|
||||
|
||||
cdef class Completion
|
||||
|
||||
-cdef void __aio_complete_cb(rbd_completion_t completion, void *args) with gil:
|
||||
+cdef void __aio_complete_cb(rbd_completion_t completion, void *args) noexcept with gil:
|
||||
"""
|
||||
Callback to oncomplete() for asynchronous operations
|
||||
"""
|
||||
@@ -0,0 +1,18 @@
|
||||
--- ceph/src/CMakeLists.txt.orig 2023-11-01 11:53:53.618167190 -0400
|
||||
+++ ceph/src/CMakeLists.txt 2023-11-01 13:52:51.292643490 -0400
|
||||
@@ -625,6 +625,7 @@
|
||||
add_subdirectory(perfglue)
|
||||
|
||||
add_library(rados_snap_set_diff_obj OBJECT librados/snap_set_diff.cc)
|
||||
+add_dependencies(rados_snap_set_diff_obj legacy-option-headers)
|
||||
|
||||
option(WITH_LIBRADOSSTRIPER "build with libradosstriper support" ON)
|
||||
|
||||
@@ -881,6 +882,7 @@
|
||||
add_library(krbd STATIC krbd.cc
|
||||
$<TARGET_OBJECTS:parse_secret_objs>)
|
||||
target_link_libraries(krbd keyutils::keyutils)
|
||||
+ add_dependencies(krbd legacy-option-headers)
|
||||
endif()
|
||||
add_subdirectory(librbd)
|
||||
if(WITH_FUSE)
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ceph-18.2.4/src/include/rados/rgw_file.h.orig 2024-09-23 12:05:39.942703570 -0400
|
||||
+++ ceph-18.2.4/src/include/rados/rgw_file.h 2024-09-23 12:05:55.800441732 -0400
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
#define LIBRGW_FILE_VER_MAJOR 1
|
||||
#define LIBRGW_FILE_VER_MINOR 2
|
||||
-#define LIBRGW_FILE_VER_EXTRA 0
|
||||
+#define LIBRGW_FILE_VER_EXTRA 1
|
||||
|
||||
#define LIBRGW_FILE_VERSION(maj, min, extra) ((maj << 16) + (min << 8) + extra)
|
||||
#define LIBRGW_FILE_VERSION_CODE LIBRGW_FILE_VERSION(LIBRGW_FILE_VER_MAJOR, LIBRGW_FILE_VER_MINOR, LIBRGW_FILE_VER_EXTRA)
|
||||
@@ -0,0 +1,14 @@
|
||||
--- ceph-18.2.4/CMakeLists.txt.orig 2025-04-08 12:58:08.231622137 -0400
|
||||
+++ ceph-18.2.4/CMakeLists.txt 2025-04-08 12:58:17.021471996 -0400
|
||||
@@ -739,11 +739,3 @@
|
||||
option(WITH_GRAFANA "install grafana dashboards" OFF)
|
||||
add_subdirectory(monitoring/ceph-mixin)
|
||||
|
||||
-include(CTags)
|
||||
-option(CTAG_EXCLUDES "Exclude files/directories when running ctag.")
|
||||
-add_tags(ctags
|
||||
- SRC_DIR src
|
||||
- TAG_FILE tags
|
||||
- EXCLUDE_OPTS ${CTAG_EXCLUDES}
|
||||
- EXCLUDES "*.js" "*.css" ".tox" "python-common/build")
|
||||
-add_custom_target(tags DEPENDS ctags)
|
||||
@@ -0,0 +1,58 @@
|
||||
commit f9aea9105b6c1a8d7bff0ec0675f84f2ffb1db6f
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Wed Dec 20 14:16:19 2023 +0100
|
||||
|
||||
tracing: Fix C type errors in librados tracing
|
||||
|
||||
This fixes type errors like this:
|
||||
|
||||
In file included from /usr/include/lttng/tracepoint-event.h:69,
|
||||
from …-build/include/tracing/librados.h:4143,
|
||||
from …/src/tracing/librados.c:6
|
||||
:
|
||||
…-build/include/tracing/librados.h:
|
||||
In function ‘lttng_ust__event_probe__librados___rados_mon_command_exit’:
|
||||
…-build/include/tracing/librados.h:477:9: error: initialization of ‘size_t’ {aka ‘long unsigned int’} from ‘size_t *’ {aka ‘long unsigned int *’} makes integer from pointer without a cast
|
||||
477 | ceph_ctf_integerp(size_t, outslen, outslen)
|
||||
| ^~~~~~~~~~~~~~~~~
|
||||
|
||||
GCC 14 will likely treat these type mismatches as an error
|
||||
and fail the build.
|
||||
|
||||
Signed-off-by: Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
diff --git a/src/tracing/librados.tp b/src/tracing/librados.tp
|
||||
index 8b5e78ef15..8e116124b8 100644
|
||||
--- a/src/tracing/librados.tp
|
||||
+++ b/src/tracing/librados.tp
|
||||
@@ -2628,7 +2628,7 @@ TRACEPOINT_EVENT(librados, rados_watch3_enter,
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(rados_ioctx_t, ioctx, ioctx)
|
||||
ctf_string(oid, oid)
|
||||
- ctf_integer_hex(uint64_t, phandle, phandle)
|
||||
+ ctf_integer_hex(uint64_t*, phandle, phandle)
|
||||
ctf_integer_hex(rados_watchcb2_t, callback, callback)
|
||||
ctf_integer(uint32_t, timeout, timeout)
|
||||
ctf_integer_hex(void*, arg, arg)
|
||||
@@ -2658,7 +2658,7 @@ TRACEPOINT_EVENT(librados, rados_aio_watch2_enter,
|
||||
ctf_integer_hex(rados_ioctx_t, ioctx, ioctx)
|
||||
ctf_string(oid, oid)
|
||||
ctf_integer_hex(rados_completion_t, completion, completion)
|
||||
- ctf_integer_hex(uint64_t, phandle, phandle)
|
||||
+ ctf_integer_hex(uint64_t*, phandle, phandle)
|
||||
ctf_integer_hex(rados_watchcb2_t, callback, callback)
|
||||
ctf_integer(uint32_t, timeout, timeout)
|
||||
ctf_integer_hex(void*, arg, arg)
|
||||
diff --git a/src/tracing/tracing-common.h b/src/tracing/tracing-common.h
|
||||
index 3e07f9de8e..03449ab588 100644
|
||||
--- a/src/tracing/tracing-common.h
|
||||
+++ b/src/tracing/tracing-common.h
|
||||
@@ -21,7 +21,7 @@
|
||||
// type should be an integer type
|
||||
// val should have type type*
|
||||
#define ceph_ctf_integerp(type, field, val) \
|
||||
- ctf_integer(type, field, (val) == NULL ? 0 : (val)) \
|
||||
+ ctf_integer(type, field, (val) == NULL ? 0 : *(val)) \
|
||||
ctf_integer(uint8_t, field##_isnull, (val) == NULL)
|
||||
|
||||
// val should have type char*
|
||||
@@ -0,0 +1,178 @@
|
||||
commit a49d154f4a8e493baf2296a15c7b5c56cd25e993
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Wed Dec 20 14:59:19 2023 +0100
|
||||
|
||||
pybind: Fix C type errors in Cython-generated Python bindings
|
||||
|
||||
Several Ceph APIs use bool * types, which correspond to
|
||||
libcpp.bool * types in Cython. The bint type has an incorrect
|
||||
size 4 and cannot be used as a replacement.
|
||||
|
||||
This prevents a compilation failure with future compilers:
|
||||
|
||||
…-build/src/pybind/rbd/rbd.c: In function ‘__pyx_pf_3rbd_3RBD_104namespace_exists’:
|
||||
…-build/src/pybind/rbd/rbd.c:42165:76: error: passing argument 3 of ‘rbd_namespace_exists’ from incompatible pointer type
|
||||
42165 | __pyx_v_ret = rbd_namespace_exists(__pyx_v__ioctx, __pyx_v__name, (&__pyx_v__exists));
|
||||
| ~^~~~~~~~~~~~~~~~~
|
||||
| |
|
||||
| int *
|
||||
In file included from …-build/src/pybind/rbd/rbd.c:1268:
|
||||
…/src/include/rbd/librbd.h:1496:45: note: expected ‘_Bool *’ but argument is of type ‘int *’
|
||||
1496 | bool *exists);
|
||||
| ^
|
||||
|
||||
Signed-off-by: Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
diff --git a/src/pybind/rbd/c_rbd.pxd b/src/pybind/rbd/c_rbd.pxd
|
||||
index 885f7bd46a..bda23bbc47 100644
|
||||
--- a/src/pybind/rbd/c_rbd.pxd
|
||||
+++ b/src/pybind/rbd/c_rbd.pxd
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
from libc.stdint cimport *
|
||||
from ctime cimport time_t, timespec
|
||||
+cimport libcpp
|
||||
|
||||
cdef extern from "rados/librados.h":
|
||||
enum:
|
||||
@@ -525,7 +526,7 @@ cdef extern from "rbd/librbd.h" nogil:
|
||||
int rbd_snap_unprotect(rbd_image_t image, const char *snap_name)
|
||||
int rbd_snap_is_protected(rbd_image_t image, const char *snap_name,
|
||||
int *is_protected)
|
||||
- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists)
|
||||
+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists)
|
||||
int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit)
|
||||
int rbd_snap_set_limit(rbd_image_t image, uint64_t limit)
|
||||
int rbd_snap_get_timestamp(rbd_image_t image, uint64_t snap_id, timespec *timestamp)
|
||||
@@ -711,7 +712,7 @@ cdef extern from "rbd/librbd.h" nogil:
|
||||
int rbd_namespace_list(rados_ioctx_t io, char *namespace_names,
|
||||
size_t *size)
|
||||
int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name,
|
||||
- bint *exists)
|
||||
+ libcpp.bool *exists)
|
||||
|
||||
int rbd_pool_init(rados_ioctx_t, bint force)
|
||||
|
||||
diff --git a/src/pybind/rbd/mock_rbd.pxi b/src/pybind/rbd/mock_rbd.pxi
|
||||
index 11872bd814..364f965fba 100644
|
||||
--- a/src/pybind/rbd/mock_rbd.pxi
|
||||
+++ b/src/pybind/rbd/mock_rbd.pxi
|
||||
@@ -3,6 +3,11 @@
|
||||
from libc.stdint cimport *
|
||||
from ctime cimport time_t, timespec
|
||||
|
||||
+# Make the bool type available as libcpp.bool, for both C and C++.
|
||||
+cimport libcpp
|
||||
+cdef extern from "<stdbool.h>":
|
||||
+ pass
|
||||
+
|
||||
cdef nogil:
|
||||
enum:
|
||||
_LIBRADOS_SNAP_HEAD "LIBRADOS_SNAP_HEAD"
|
||||
@@ -637,7 +642,7 @@ cdef nogil:
|
||||
int rbd_snap_is_protected(rbd_image_t image, const char *snap_name,
|
||||
int *is_protected):
|
||||
pass
|
||||
- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists):
|
||||
+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists):
|
||||
pass
|
||||
int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit):
|
||||
pass
|
||||
@@ -896,7 +901,7 @@ cdef nogil:
|
||||
size_t *size):
|
||||
pass
|
||||
int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name,
|
||||
- bint *exists):
|
||||
+ libcpp.bool *exists):
|
||||
pass
|
||||
int rbd_pool_init(rados_ioctx_t io, bint force):
|
||||
pass
|
||||
diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx
|
||||
index fcb2fb3470..f59ba23f0f 100644
|
||||
--- a/src/pybind/rbd/rbd.pyx
|
||||
+++ b/src/pybind/rbd/rbd.pyx
|
||||
@@ -23,6 +23,7 @@ from libc cimport errno
|
||||
from libc.stdint cimport *
|
||||
from libc.stdlib cimport malloc, realloc, free
|
||||
from libc.string cimport strdup, memset
|
||||
+cimport libcpp
|
||||
|
||||
try:
|
||||
from collections.abc import Iterable
|
||||
@@ -1935,12 +1936,12 @@ class RBD(object):
|
||||
cdef:
|
||||
rados_ioctx_t _ioctx = convert_ioctx(ioctx)
|
||||
const char *_name = name
|
||||
- bint _exists = False
|
||||
+ libcpp.bool _exists = False
|
||||
with nogil:
|
||||
ret = rbd_namespace_exists(_ioctx, _name, &_exists)
|
||||
if ret != 0:
|
||||
raise make_ex(ret, 'error verifying namespace')
|
||||
- return bool(_exists != 0)
|
||||
+ return _exists
|
||||
|
||||
def namespace_list(self, ioctx):
|
||||
"""
|
||||
@@ -3679,12 +3680,12 @@ cdef class Image(object):
|
||||
name = cstr(name, 'name')
|
||||
cdef:
|
||||
char *_name = name
|
||||
- bint _exists = False
|
||||
+ libcpp.bool _exists = False
|
||||
with nogil:
|
||||
ret = rbd_snap_exists(self.image, _name, &_exists)
|
||||
if ret != 0:
|
||||
raise make_ex(ret, 'error getting snapshot exists for %s' % self.name)
|
||||
- return bool(_exists != 0)
|
||||
+ return _exists
|
||||
|
||||
@requires_not_closed
|
||||
def get_snap_limit(self):
|
||||
diff --git a/src/pybind/rgw/mock_rgw.pxi b/src/pybind/rgw/mock_rgw.pxi
|
||||
index ca893a5bb8..806d4df75d 100644
|
||||
--- a/src/pybind/rgw/mock_rgw.pxi
|
||||
+++ b/src/pybind/rgw/mock_rgw.pxi
|
||||
@@ -1,5 +1,10 @@
|
||||
# cython: embedsignature=True
|
||||
|
||||
+# Make the bool type available as libcpp.bool, for both C and C++.
|
||||
+cimport libcpp
|
||||
+cdef extern from "<stdbool.h>":
|
||||
+ pass
|
||||
+
|
||||
cdef nogil:
|
||||
ctypedef void* librgw_t
|
||||
|
||||
@@ -111,8 +116,8 @@ cdef nogil:
|
||||
|
||||
int rgw_readdir(rgw_fs *fs,
|
||||
rgw_file_handle *parent_fh, uint64_t *offset,
|
||||
- bint (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000,
|
||||
- void *cb_arg, bint *eof, uint32_t flags) except? -9000:
|
||||
+ libcpp.bool (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000,
|
||||
+ void *cb_arg, libcpp.bool *eof, uint32_t flags) except? -9000:
|
||||
pass
|
||||
|
||||
int rgw_getattr(rgw_fs *fs,
|
||||
diff --git a/src/pybind/rgw/rgw.pyx b/src/pybind/rgw/rgw.pyx
|
||||
index 9bbcdfff58..d210a70bbb 100644
|
||||
--- a/src/pybind/rgw/rgw.pyx
|
||||
+++ b/src/pybind/rgw/rgw.pyx
|
||||
@@ -7,6 +7,7 @@ from cpython cimport PyObject, ref, exc, array
|
||||
from libc.stdint cimport *
|
||||
from libc.stdlib cimport malloc, realloc, free
|
||||
from cstat cimport stat
|
||||
+cimport libcpp
|
||||
|
||||
IF BUILD_DOC:
|
||||
include "mock_rgw.pxi"
|
||||
@@ -373,7 +374,7 @@ cdef class LibRGWFS(object):
|
||||
cdef:
|
||||
rgw_file_handle *_dir_handler = <rgw_file_handle*>dir_handler.handler
|
||||
uint64_t _offset = offset
|
||||
- bint _eof
|
||||
+ libcpp.bool _eof
|
||||
uint32_t _flags = flags
|
||||
with nogil:
|
||||
ret = rgw_readdir(self.fs, _dir_handler, &_offset, &readdir_cb,
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
|
||||
index 2e92132366..3cb1e3d958 100644
|
||||
--- a/cmake/modules/BuildBoost.cmake
|
||||
+++ b/cmake/modules/BuildBoost.cmake
|
||||
@@ -62,7 +62,7 @@ function(do_build_boost version)
|
||||
else()
|
||||
list(APPEND boost_features "address-model=32")
|
||||
endif()
|
||||
- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
|
||||
+ set(BOOST_CXXFLAGS "-fPIC -w -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -ftemplate-depth-1024 -fno-new-ttp-matching -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free") # check on arm, etc <---XXX
|
||||
list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}")
|
||||
|
||||
set(boost_with_libs)
|
||||
@@ -1 +1 @@
|
||||
SHA512 (ceph-14.2.7.tar.gz) = 59f475e56053ba5e7e3a482a3a91b4d44272e6ec8051b92783de76c09c0d967a7ef76676db998968a709e48f08e90828dd8f86bd96a7c3fd111d48bfb7fd93b1
|
||||
SHA512 (ceph-18.2.6.tar.gz) = 06bef880543a3c444783ed4a3927fd94a7b05180d35d356372f36679f1e00c3ee2cf3b0c15732fdc0c1ba55c922e07b7fa66274cb12a196914c79faa99859f13
|
||||
|
||||
Reference in New Issue
Block a user