diff --git a/src/blockstore.h b/src/blockstore.h index 3bc3a506..4af261db 100644 --- a/src/blockstore.h +++ b/src/blockstore.h @@ -149,10 +149,10 @@ struct blockstore_op_t uint64_t opcode; // finish callback std::function callback; - union + union __attribute__((__packed__)) { // R/W - struct + struct __attribute__((__packed__)) { object_id oid; uint64_t version; diff --git a/src/cli_describe.cpp b/src/cli_describe.cpp index 444f2c96..a8d8c257 100644 --- a/src/cli_describe.cpp +++ b/src/cli_describe.cpp @@ -178,11 +178,11 @@ struct cli_describe_t { if (!parent->json_output || parent->is_command_line) { -#define FMT "{\"inode\":\"0x%lx\",\"stripe\":\"0x%lx\",\"part\":%u,\"osd_num\":%u%s%s%s}" +#define FMT "{\"inode\":\"0x%lx\",\"stripe\":\"0x%lx\",\"part\":%u,\"osd_num\":%lu%s%s%s}" printf( (parent->json_output ? (count > 0 ? ",\n " FMT : " " FMT) - : "%lx:%lx part %u on OSD %u%s%s%s\n"), + : "%lx:%lx part %u on OSD %lu%s%s%s\n"), #undef FMT items[i].inode, items[i].stripe, items[i].role, items[i].osd_num, diff --git a/src/cli_fix.h b/src/cli_fix.h index 96757ef2..2a13f08f 100644 --- a/src/cli_fix.h +++ b/src/cli_fix.h @@ -4,6 +4,7 @@ #pragma once #include "cli.h" +#include std::vector parse_uint64_list(json11::Json val); diff --git a/src/osd_primary_subops.cpp b/src/osd_primary_subops.cpp index e79f3f34..8d51e05c 100644 --- a/src/osd_primary_subops.cpp +++ b/src/osd_primary_subops.cpp @@ -176,7 +176,7 @@ int osd_t::submit_primary_subop_batch(int submit_type, inode_t inode, uint64_t o { handle_primary_bs_subop(subop); }, - { + { { .oid = (object_id){ .inode = inode, .stripe = op_data->oid.stripe | stripe_num, @@ -184,7 +184,7 @@ int osd_t::submit_primary_subop_batch(int submit_type, inode_t inode, uint64_t o .version = op_version, .offset = wr ? si->write_start : si->read_start, .len = subop_len, - }, + } }, .buf = wr ? si->write_buf : si->read_buf, .bitmap = si->bmp_buf, }); @@ -533,8 +533,10 @@ void osd_t::submit_primary_del_batch(osd_op_t *cur_op, obj_ver_osd_t *chunks_to_ { handle_primary_bs_subop(subop); }, - .oid = chunk.oid, - .version = chunk.version, + { { + .oid = chunk.oid, + .version = chunk.version, + } }, }); bs->enqueue_op(subops[i].bs_op); }