From e4d80c415ebcbb205737514752e76949f846d752 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sun, 10 May 2026 12:20:31 +0300 Subject: [PATCH] Always check pool resharding state also for stabilize/rollback --- src/osd/osd_secondary.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/osd/osd_secondary.cpp b/src/osd/osd_secondary.cpp index d553a128..baa14fe8 100644 --- a/src/osd/osd_secondary.cpp +++ b/src/osd/osd_secondary.cpp @@ -192,16 +192,13 @@ void osd_t::exec_secondary_real(osd_op_t *cur_op) #ifdef OSD_STUB cur_op->bs_op->retval = 0; #endif - if (enable_pg_locks) + for (int i = 0; i < cur_op->bs_op->len; i++) { - for (int i = 0; i < cur_op->bs_op->len; i++) + if (!sec_check_pg_lock(cl->in_osd_num, ((obj_ver_id*)cur_op->buf)[i].oid, cur_op->req.sec_stab.flags)) { - if (!sec_check_pg_lock(cl->in_osd_num, ((obj_ver_id*)cur_op->buf)[i].oid, cur_op->req.sec_stab.flags)) - { - cur_op->bs_op->retval = -EPIPE; - secondary_op_callback(cur_op); - return; - } + cur_op->bs_op->retval = -EPIPE; + secondary_op_callback(cur_op); + return; } } } @@ -215,8 +212,8 @@ void osd_t::exec_secondary_real(osd_op_t *cur_op) secondary_op_callback(cur_op); return; } - auto pool_id = INODE_POOL(cur_op->bs_op->min_oid.inode); - if (pool_id && !sec_check_pg_lock(0, (object_id){ .inode = cur_op->bs_op->min_oid.inode }, OSD_OP_IGNORE_PG_LOCK)) + auto pool_id = INODE_POOL(cur_op->req.sec_list.min_inode); + if (!pool_id || !sec_check_pg_lock(0, (object_id){ .inode = cur_op->req.sec_list.min_inode }, OSD_OP_IGNORE_PG_LOCK)) { // Check resharding state of the pool cur_op->bs_op->retval = -EPIPE;