+--- ceph-17.2.3/src/seastar/src/core/file.cc.orig 2021-12-19 23:02:10.000000000 +0100
++++ ceph-17.2.3/src/seastar/src/core/file.cc 2022-08-28 09:19:17.258501014 +0200
+@@ -313,7 +313,7 @@ posix_file_impl::close() noexcept {
+
+ future<uint64_t>
+ blockdev_file_impl::size(void) noexcept {
+- return engine()._thread_pool->submit<syscall_result_extra<size_t>>([this] {
++ return engine()._thread_pool->submit<syscall_result_extra<uint64_t>>([this] {
+ uint64_t size;
+ int ret = ::ioctl(_fd, BLKGETSIZE64, &size);
+ return wrap_syscall(ret, size);
+@@ -908,7 +908,7 @@ append_challenged_posix_file_impl::trunc
+
+ future<uint64_t>
+ append_challenged_posix_file_impl::size() noexcept {
+- return make_ready_future<size_t>(_logical_size);
++ return make_ready_future<uint64_t>(_logical_size);
+ }
+
+ future<>
+--- ceph-17.2.3/src/seastar/src/core/fstream.cc.orig 2021-12-19 23:02:10.000000000 +0100
++++ ceph-17.2.3/src/seastar/src/core/fstream.cc 2022-08-28 09:22:32.072057177 +0200
+@@ -419,7 +419,7 @@ private:
+ if ((buf.size() & (_file.disk_write_dma_alignment() - 1)) != 0) {
+ // If buf size isn't aligned, copy its content into a new aligned buf.
+ // This should only happen when the user calls output_stream::flush().
+- auto tmp = allocate_buffer(align_up(buf.size(), _file.disk_write_dma_alignment()));
++ auto tmp = allocate_buffer(align_up<uint64_t>(buf.size(), _file.disk_write_dma_alignment()));
+ ::memcpy(tmp.get_write(), buf.get(), buf.size());
+ ::memset(tmp.get_write() + buf.size(), 0, tmp.size() - buf.size());
+ buf = std::move(tmp);
+--- ceph-18.2.3/src/osd/OSDMap.cc.orig 2024-04-24 21:57:21.000000000 +0200
++++ ceph-18.2.3/src/osd/OSDMap.cc 2024-06-01 18:51:51.915566430 +0200
+@@ -6170,14 +6170,14 @@ int OSDMap::calc_read_balance_score(Ceph
+ }
+ if (prim_pgs_by_osd.count(osd)) {
+ auto n_prims = prim_pgs_by_osd.at(osd).size();
+- max_prims_per_osd = std::max(max_prims_per_osd, n_prims);
++ max_prims_per_osd = std::max<uint64_t>(max_prims_per_osd, n_prims);
+ if (osd_pa == 0.) {
+ prim_on_zero_pa = true;
+ }
+ }
+ if (acting_prims_by_osd.count(osd)) {
+ auto n_aprims = acting_prims_by_osd.at(osd).size();
+- max_acting_prims_per_osd = std::max(max_acting_prims_per_osd, n_aprims);
++ max_acting_prims_per_osd = std::max<uint64_t>(max_acting_prims_per_osd, n_aprims);
+ if (osd_pa != 0.) {
+ max_osd_score = std::max(max_osd_score, float(n_aprims) / osd_pa);
+ }
+--- ceph-18.2.3/src/cls/rgw/cls_rgw_types.h.orig 2024-04-24 21:57:21.000000000 +0200
++++ ceph-18.2.3/src/cls/rgw/cls_rgw_types.h 2024-06-01 20:43:58.381041708 +0200
+@@ -1226,7 +1226,7 @@ struct cls_rgw_lc_obj_head
+ uint64_t t = start_date;
+ encode(t, bl);
+ encode(marker, bl);
+- encode(shard_rollover_date, bl);
++ encode(static_cast<uint64_t>(shard_rollover_date), bl);
+ ENCODE_FINISH(bl);
+ }
+