From ecd92655fe002f87dc4c5a51866813ac161f30b3 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 28 Dec 2024 21:53:49 +0300 Subject: [PATCH] Fix rm --exact / --matching not removing one uppermost image in each chain --- src/cmd/cli_rm_wildcard.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/cmd/cli_rm_wildcard.cpp b/src/cmd/cli_rm_wildcard.cpp index 8aba9d7b..0dc35d98 100644 --- a/src/cmd/cli_rm_wildcard.cpp +++ b/src/cmd/cli_rm_wildcard.cpp @@ -73,8 +73,11 @@ struct wildcard_remover_t { auto & inode_cfg = parent->cli->st_cli.inode_config.at(child_id); ver_chain.push_back((inode_rev_t){ .inode_num = child_id, .meta_rev = inode_cfg.mod_revision }); - child_id = inode_cfg.parent_id; - } while (child_id && child_id != parent_id); + if (child_id == parent_id) + break; + else + child_id = inode_cfg.parent_id; + } while (child_id); versioned_chains.push_back(std::move(ver_chain)); } // Sort chains based on parent inode rank to first delete child-most layers