Compare commits
244 Commits
master
...
main-riscv
Author | SHA1 | Date |
---|---|---|
David Abdurachmanov | 08840370b4 | |
David Abdurachmanov | 91966ee5b2 | |
Kaleb S. KEITHLEY | ae476e040f | |
Kaleb S. KEITHLEY | 30fd6bd235 | |
Kaleb S. KEITHLEY | e61e83bf2e | |
Kaleb S. KEITHLEY | 1add7973a9 | |
Kaleb S. KEITHLEY | dae4d4a3ac | |
Kaleb S. KEITHLEY | f7b9e58050 | |
Kaleb S. KEITHLEY | 3430d480f2 | |
Terje Rosten | df3c9e92fb | |
Kaleb S. KEITHLEY | 649f961fa0 | |
Kaleb S. KEITHLEY | ed9b5e1f74 | |
Kaleb S. KEITHLEY | 1bf01fccf7 | |
Kaleb S. KEITHLEY | 93a4fe7597 | |
Kaleb S. KEITHLEY | 1ca647a4b9 | |
Kaleb S. KEITHLEY | 88108d8c98 | |
Kaleb S. KEITHLEY | 6f79abf9c3 | |
Fedora Release Engineering | 0d1cc731ad | |
František Zatloukal | 5e76bc0ad4 | |
Yaakov Selkowitz | 6f9f7e2e4a | |
Yaakov Selkowitz | 085cd612d4 | |
Kaleb S. KEITHLEY | aa691eb6d2 | |
Kaleb S. KEITHLEY | 468a2c36ab | |
Kaleb S. KEITHLEY | 1980396784 | |
Kaleb S. KEITHLEY | 91dd896847 | |
Kaleb S. KEITHLEY | ca81cd2515 | |
Kaleb S. KEITHLEY | 617d537253 | |
Kaleb S. KEITHLEY | 35042fccaa | |
Kaleb S. KEITHLEY | c89ec5de2b | |
Python Maint | 9c5f485aa9 | |
Kaleb S. KEITHLEY | 4f4defa7e2 | |
Yaakov Selkowitz | 1ab48d0e0d | |
Kaleb S. KEITHLEY | 9a0799bc61 | |
Kaleb S. KEITHLEY | c817d5a04e | |
Kaleb S. KEITHLEY | 0e8a2ef902 | |
Kaleb S. KEITHLEY | d3ad3a08bd | |
Kaleb S. KEITHLEY | dcf07e8b7f | |
Kaleb S. KEITHLEY | dbd2b71d9d | |
Kaleb S. KEITHLEY | 2cc4dd5e37 | |
Kaleb S. KEITHLEY | e5f1594856 | |
Kaleb S. KEITHLEY | 3d4788fc3e | |
Kaleb S. KEITHLEY | 2fec333c00 | |
Kaleb S. KEITHLEY | 460ba1ceb5 | |
Kaleb S. KEITHLEY | 58319e8d44 | |
Kaleb S. KEITHLEY | 4844e582ac | |
Kaleb S. KEITHLEY | aaedf07964 | |
Kaleb S. KEITHLEY | f33cca0cb6 | |
Kaleb S. KEITHLEY | c613a7913d | |
Jonathan Wakely | 32b1af1542 | |
Kaleb S. KEITHLEY | 0d92b145fb | |
Kaleb S. KEITHLEY | 1fd4067b59 | |
Kaleb S. KEITHLEY | 68c121780b | |
Kaleb S. KEITHLEY | c63ac8cd1c | |
Kaleb S. KEITHLEY | 0cef2ba27d | |
Kaleb S. KEITHLEY | da92657ed9 | |
Fedora Release Engineering | 339f628c14 | |
Kaleb S. KEITHLEY | fe792d61ad | |
Kaleb S. KEITHLEY | 945dc70d29 | |
Pete Walter | e6b3456a69 | |
Kaleb S. KEITHLEY | f6485b3ab1 | |
Kaleb S. KEITHLEY | 2d1c189958 | |
Kaleb S. KEITHLEY | af3d1fd70c | |
Kaleb S. KEITHLEY | f52b5ed647 | |
David Abdurachmanov | 4edafff168 | |
Kaleb S. KEITHLEY | 5c6ef2f610 | |
Kaleb S. KEITHLEY | b651554bd7 | |
Kaleb S. KEITHLEY | 80c32a846e | |
Kaleb S. KEITHLEY | c59af85c9a | |
Kaleb S. KEITHLEY | ad04d48a91 | |
František Zatloukal | 5cc1064abe | |
Kaleb S. KEITHLEY | 0f36784c8d | |
Kaleb S. KEITHLEY | 4641edbf6e | |
Fedora Release Engineering | 7522ec1d1e | |
Kaleb S. KEITHLEY | 4a7615cc28 | |
Robert-André Mauchin | eacbe3b4a2 | |
Robert-André Mauchin | 87c5192736 | |
Mamoru TASAKA | 21a281eefc | |
Kaleb S. KEITHLEY | 7c4f87d566 | |
Kaleb S. KEITHLEY | 85d0b180fb | |
Kaleb S. KEITHLEY | 2999191251 | |
Kaleb S. KEITHLEY | 0434611ff3 | |
Robert-André Mauchin | 4425090d12 | |
Robert-André Mauchin | 4f320e6270 | |
Python Maint | 3ca3b39fdd | |
Kaleb S. KEITHLEY | c46fd83b70 | |
Kaleb S. KEITHLEY | 9189e1ac7a | |
Thomas Rodgers | f3cd3e3ded | |
Kaleb S. KEITHLEY | 3e6e53903f | |
Kaleb S. KEITHLEY | 1156a4001e | |
Thomas Rodgers | 511c2f1a19 | |
Kaleb S. KEITHLEY | a4f5a49de7 | |
Kaleb S. KEITHLEY | 629d997bbd | |
Kaleb S. KEITHLEY | b2a3bb3cff | |
Kaleb S. KEITHLEY | edd18f65bf | |
Kaleb S. KEITHLEY | 944b374961 | |
Kaleb S. KEITHLEY | 90dfc56cf2 | |
Kaleb S. KEITHLEY | bf163e9b33 | |
Kaleb S. KEITHLEY | 5897751ce1 | |
Kaleb S. KEITHLEY | 73efddca7f | |
Kaleb S. KEITHLEY | f9fa7d2971 | |
Kaleb S. KEITHLEY | 1efbe7fbd6 | |
Kaleb S. KEITHLEY | fed2cbacdf | |
Kaleb S. KEITHLEY | bddfe865f2 | |
Kaleb S. KEITHLEY | e56d4b2886 | |
Kaleb S. KEITHLEY | b6062fd6dc | |
Jiri | 8c6b1da0a2 | |
Kaleb S. KEITHLEY | 1f11726563 | |
Kaleb S. KEITHLEY | bba894de7e | |
Kaleb S. KEITHLEY | 3715b23426 | |
Kaleb S. KEITHLEY | f38d3f777f | |
Kaleb S. KEITHLEY | 0114881ab4 | |
Kaleb S. KEITHLEY | a786ef1504 | |
Kaleb S. KEITHLEY | 2931b99be7 | |
Kaleb S. KEITHLEY | 70e587526e | |
Fedora Release Engineering | 9c86a420ea | |
Kaleb S. KEITHLEY | 0c8ed285d3 | |
Kaleb S. KEITHLEY | ddbcb5d66f | |
Kaleb S. KEITHLEY | 8c750b960c | |
Mamoru TASAKA | abdbef9e0e | |
Kaleb S. KEITHLEY | 43b4197d44 | |
Kaleb S. KEITHLEY | b0c18eeafc | |
Sahana Prasad | 9c55220808 | |
Kaleb S. KEITHLEY | 8a6545912f | |
Kaleb S. KEITHLEY | e7a5495ba4 | |
Kaleb S. KEITHLEY | 7c50250c92 | |
Kaleb S. KEITHLEY | 1217c82a28 | |
Kaleb S. KEITHLEY | 8d6f5530e7 | |
Jonathan Wakely | fe9cf79756 | |
Kaleb S. KEITHLEY | 0d4b487537 | |
Kaleb S. KEITHLEY | 13c95af02e | |
Fedora Release Engineering | c8153cb68b | |
Fedora Release Engineering | a82adb1178 | |
Kaleb S. KEITHLEY | 0da31a640b | |
Kaleb S. KEITHLEY | c5116a4d3d | |
Kaleb S. KEITHLEY | f6c80111f0 | |
Richard Shaw | 65809728d6 | |
Kaleb S. KEITHLEY | d7454e4e0a | |
Python Maint | 804031cde8 | |
Kaleb S. KEITHLEY | f126724be1 | |
Pete Walter | 9e94fbdfaf | |
Kaleb S. KEITHLEY | b070296ace | |
Kaleb S. KEITHLEY | 98f7173b37 | |
Kaleb S. KEITHLEY | 4bd118debc | |
Kaleb S. KEITHLEY | 78e076b5af | |
Richard W.M. Jones | 976474060f | |
Kaleb S. KEITHLEY | d60970c7cd | |
Kaleb S. KEITHLEY | 4a2e67ce27 | |
Jonathan Wakely | 5cee54462c | |
Kaleb S. KEITHLEY | 5e9e44ba9d | |
Kaleb S. KEITHLEY | 03686a5492 | |
Kaleb S. KEITHLEY | c4b36fdbe9 | |
Kaleb S. KEITHLEY | ba585a6512 | |
Kaleb S. KEITHLEY | 3aa610e268 | |
Kaleb S. KEITHLEY | af4b4952f8 | |
Kaleb S. KEITHLEY | cbed2814c2 | |
Kaleb S. KEITHLEY | 92605c05f0 | |
Kaleb S. KEITHLEY | fc46f52db9 | |
Kaleb S. KEITHLEY | 7ccae1fdf3 | |
Kaleb S. KEITHLEY | 1fdc7e124d | |
Kaleb S. KEITHLEY | be247e2321 | |
Kaleb S. KEITHLEY | 7d89214d12 | |
Kaleb S. KEITHLEY | 189f095ebc | |
Kaleb S. KEITHLEY | a7b4842132 | |
Kaleb S. KEITHLEY | 07c18dd027 | |
Kaleb S. KEITHLEY | 415b03ce74 | |
Kaleb S. KEITHLEY | 3d9c93f7ab | |
Kaleb S. KEITHLEY | 59dc7d2595 | |
Kaleb S. KEITHLEY | bf4b7aed66 | |
Kaleb S KEITHLEY | 501243427a | |
Kaleb S KEITHLEY | 9e63d61879 | |
Jonathan Wakely | 19975cf06e | |
Kaleb S KEITHLEY | 7b01ed79a0 | |
Kaleb S KEITHLEY | f871a2726e | |
Kaleb S KEITHLEY | f52ea67e29 | |
Kaleb S KEITHLEY | df3db8be0e | |
Kaleb S KEITHLEY | da3f27e563 | |
Kaleb S KEITHLEY | d5be4a1cc6 | |
Kaleb S. KEITHLEY | 950231a5bb | |
Richard W.M. Jones | b774776eb5 | |
Fedora Release Engineering | be7e755323 | |
Kaleb S. KEITHLEY | 95e779c6c1 | |
Kaleb S. KEITHLEY | 73dfbc7ffd | |
Kaleb S. KEITHLEY | be70cfd29d | |
Kaleb S. KEITHLEY | 2e1f76369c | |
Kaleb S. KEITHLEY | 6daabd97d4 | |
Kaleb S. KEITHLEY | fbd3e48156 | |
Kaleb S. KEITHLEY | 6fc0065262 | |
Kaleb S. KEITHLEY | df740a5e36 | |
Jiri | cb586a7643 | |
Kaleb S. KEITHLEY | 447d02458a | |
Kaleb S. KEITHLEY | f0623329e5 | |
Kaleb S. KEITHLEY | 624de89cce | |
Kaleb S. KEITHLEY | 0e58e2f39c | |
Kaleb S. KEITHLEY | 66d0b21911 | |
Kaleb S. KEITHLEY | abcc0b7100 | |
Kaleb S. KEITHLEY | cc4e5c3669 | |
Kaleb S. KEITHLEY | 5c46ad7f7e | |
Miro Hrončok | 5904d137cf | |
Kaleb S. KEITHLEY | 21ae44b9d8 | |
Kaleb S. KEITHLEY | ab7f0da7e2 | |
Kaleb S. KEITHLEY | db4f36a951 | |
Kaleb S. KEITHLEY | 0654a1fdc4 | |
Kaleb S. KEITHLEY | 1e83c5c029 | |
Kaleb S. KEITHLEY | e4cc93f966 | |
Kaleb S. KEITHLEY | 26fd4ffbc6 | |
Kaleb S. KEITHLEY | d463ff311e | |
Kaleb S. KEITHLEY | ef8dc618c7 | |
Kaleb S. KEITHLEY | fcc245cca3 | |
Kaleb S. KEITHLEY | acfede696d | |
Kaleb S. KEITHLEY | d6834c5aab | |
Kaleb S. KEITHLEY | a09febb7ef | |
Kaleb S. KEITHLEY | 9cdcdd7459 | |
Kaleb S. KEITHLEY | 6c126d30be | |
Kaleb S. KEITHLEY | 3913155591 | |
Kaleb S. KEITHLEY | 648550e64f | |
Kaleb S. KEITHLEY | 4deb491174 | |
Kaleb S. KEITHLEY | d8a9bdfabe | |
Kaleb S. KEITHLEY | 0d98dedd32 | |
Kaleb S. KEITHLEY | 16a5d9d365 | |
Kaleb S. KEITHLEY | b7bbd8375e | |
Kaleb S. KEITHLEY | 7816ec5783 | |
Kaleb S. KEITHLEY | e7d942d1e6 | |
Kaleb S. KEITHLEY | e559532d4b | |
Kaleb S. KEITHLEY | 2abb0a0f7c | |
Kaleb S. KEITHLEY | ce8aeac3f1 | |
Kaleb S. KEITHLEY | c5f02885fe | |
Kaleb S. KEITHLEY | 0bbc5f85a7 | |
Kaleb S. KEITHLEY | b0cac5e936 | |
Kaleb S. KEITHLEY | a384bd1238 | |
Kaleb S. KEITHLEY | c7349cff7f | |
Kaleb S. KEITHLEY | f706627b65 | |
Kaleb S. KEITHLEY | 0f1e9aab49 | |
Kaleb S. KEITHLEY | 0c11deb6e7 | |
Kaleb S. KEITHLEY | f2665f8f56 | |
Kaleb S. KEITHLEY | d472f02868 | |
Kaleb S. KEITHLEY | 9ccdbdeb2a | |
Miro Hrončok | f8c0702a5e | |
Fedora Release Engineering | 51d56299ba | |
Kaleb S. KEITHLEY | f92c59c650 | |
Petr Písař | 89637a46f7 | |
Kaleb S. KEITHLEY | c3ded1ba4d | |
Kaleb S. KEITHLEY | 229de7b3ab | |
Boris Ranto | d7375fe89d | |
Boris Ranto | 8ceca65767 |
|
@ -1,65 +0,0 @@
|
||||||
From a45270a441d483ce57db48cda699a0d2d9c01f18 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Boris Ranto <branto@redhat.com>
|
|
||||||
Date: Thu, 28 Feb 2019 00:58:12 +0100
|
|
||||||
Subject: [PATCH] s390x: A compile hack
|
|
||||||
|
|
||||||
Signed-off-by: Boris Ranto <branto@redhat.com>
|
|
||||||
---
|
|
||||||
src/rgw/rgw_dmclock_async_scheduler.cc | 2 ++
|
|
||||||
src/test/rgw/test_rgw_dmclock_scheduler.cc | 8 ++++----
|
|
||||||
2 files changed, 6 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/rgw/rgw_dmclock_async_scheduler.cc b/src/rgw/rgw_dmclock_async_scheduler.cc
|
|
||||||
index 18ba5a5e32..08657cf2b5 100644
|
|
||||||
--- a/src/rgw/rgw_dmclock_async_scheduler.cc
|
|
||||||
+++ b/src/rgw/rgw_dmclock_async_scheduler.cc
|
|
||||||
@@ -41,6 +41,7 @@ int AsyncScheduler::schedule_request_impl(const client_id& client,
|
|
||||||
const Time& time, const Cost& cost,
|
|
||||||
optional_yield yield_ctx)
|
|
||||||
{
|
|
||||||
+#ifdef HAVE_BOOST_CONTEXT
|
|
||||||
ceph_assert(yield_ctx);
|
|
||||||
|
|
||||||
auto &yield = yield_ctx.get_yield_context();
|
|
||||||
@@ -53,6 +54,7 @@ int AsyncScheduler::schedule_request_impl(const client_id& client,
|
|
||||||
else
|
|
||||||
return -ec.value();
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
diff --git a/src/test/rgw/test_rgw_dmclock_scheduler.cc b/src/test/rgw/test_rgw_dmclock_scheduler.cc
|
|
||||||
index 4e4177cb0b..ddbfd12217 100644
|
|
||||||
--- a/src/test/rgw/test_rgw_dmclock_scheduler.cc
|
|
||||||
+++ b/src/test/rgw/test_rgw_dmclock_scheduler.cc
|
|
||||||
@@ -14,6 +14,8 @@
|
|
||||||
|
|
||||||
//#define BOOST_ASIO_ENABLE_HANDLER_TRACKING
|
|
||||||
|
|
||||||
+#ifdef HAVE_BOOST_CONTEXT
|
|
||||||
+
|
|
||||||
#include "rgw/rgw_dmclock_sync_scheduler.h"
|
|
||||||
#include "rgw/rgw_dmclock_async_scheduler.h"
|
|
||||||
|
|
||||||
@@ -395,8 +397,6 @@ TEST(Queue, CrossExecutorRequest)
|
|
||||||
EXPECT_EQ(PhaseType::priority, *p2);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef HAVE_BOOST_CONTEXT
|
|
||||||
-
|
|
||||||
TEST(Queue, SpawnAsyncRequest)
|
|
||||||
{
|
|
||||||
boost::asio::io_context context;
|
|
||||||
@@ -426,6 +426,6 @@ TEST(Queue, SpawnAsyncRequest)
|
|
||||||
EXPECT_TRUE(context.stopped());
|
|
||||||
}
|
|
||||||
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
} // namespace rgw::dmclock
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
--
|
|
||||||
2.20.1
|
|
||||||
|
|
|
@ -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}")
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
--- 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>
|
||||||
|
|
||||||
|
namespace ceph {
|
||||||
|
class Formatter;
|
|
@ -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,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)
|
2
sources
2
sources
|
@ -1 +1 @@
|
||||||
SHA512 (ceph-14.2.0.tar.gz) = c86a335714fd5678988133ec0e60cb10cd948250a133c073d1ed055c5bba232fa6f1e102dd7fcb0c70b37a07c9c2d1220d4a1713720e4dcab9659152ee577480
|
SHA512 (ceph-18.2.1.tar.gz) = 88e1c18bc6c824b6203cf026cca4c9409000e7cf5b2b986e22ab74d2790d8b93d91556bd3af15a320dbdd0cf2302308f0b2c75fd1243bc5a65f76fc6b3d70736
|
||||||
|
|
Loading…
Reference in New Issue