)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":14,"context_line":"backup was deleted; before CBT the temporary snapshot was removed at the"},{"line_number":15,"context_line":"end of the backup."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Leave Cinder\u0027s own snapshots (use_quota false, which only"},{"line_number":18,"context_line":"cinder-backup creates) out of the dependent-snapshot checks in volume"},{"line_number":19,"context_line":"delete, unmanage, migrate, group delete and the retype path, and have"},{"line_number":20,"context_line":"the volume manager delete them together with the driver-created"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"f31711bf_a4319b07","line":17,"updated":"2026-11-09 12:08:13.000000000","message":"use_quota false is also set by VolumeManager._create_backup_snapshot()\n(revert-to-snapshot), which keeps that snapshot on a failed revert for\nmanual recovery. Suggested paragraph:\n\n  Leave the volume\u0027s adopted CBT reference snapshots -- those whose id a\n  backup of the volume records as reference_snapshot_cinder_id -- out of\n  the dependent-snapshot checks in volume delete, unmanage, migrate,\n  group delete and the retype path, and have the volume manager delete\n  them together with the driver-created reference snapshots, right\n  before the driver deletes, unmanages or migrates the volume. Every\n  other snapshot, including other use_quota false ones such as the\n  recovery snapshot a failed revert leaves, blocks those operations\n  exactly as before.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"backup was deleted; before CBT the temporary snapshot was removed at the"},{"line_number":15,"context_line":"end of the backup."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Leave Cinder\u0027s own snapshots (use_quota false, which only"},{"line_number":18,"context_line":"cinder-backup creates) out of the dependent-snapshot checks in volume"},{"line_number":19,"context_line":"delete, unmanage, migrate, group delete and the retype path, and have"},{"line_number":20,"context_line":"the volume manager delete them together with the driver-created"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"246e9624_af499d0d","line":17,"in_reply_to":"f31711bf_a4319b07","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"ed7ceaf014cde41abc62be28fb3ee7be42809cab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6dd9c96a_06bb873f","updated":"2026-11-05 13:07:14.000000000","message":"recheck","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"02cc5fe3049fe214bdb991d0509cb0e3d7eee095","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"47d591d7_95759153","updated":"2026-11-05 15:19:41.000000000","message":"run Everpure CI","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"}],"cinder/db/api.py":[{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":3364,"context_line":"        ~models.Snapshot.deleted,"},{"line_number":3365,"context_line":"    ]"},{"line_number":3366,"context_line":"    if exclude_internal:"},{"line_number":3367,"context_line":"        conditions.append(models.Snapshot.use_quota)"},{"line_number":3368,"context_line":"    return sql.exists().where(and_(*conditions))"},{"line_number":3369,"context_line":""},{"line_number":3370,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7cd2ec49_5812c61a","line":3367,"updated":"2026-11-09 12:08:13.000000000","message":"This also hides the failed-revert recovery snapshot (use_quota\u003dFalse)\nfrom the delete/migrate check. Suggest taking the ids to ignore instead:\nvolume_has_snapshots_filter(exclude_snapshot_ids\u003dNone), adding\n~models.Snapshot.id.in_(ids) when non-empty; callers pass the volume\u0027s\nrecorded adopted reference ids.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":3364,"context_line":"        ~models.Snapshot.deleted,"},{"line_number":3365,"context_line":"    ]"},{"line_number":3366,"context_line":"    if exclude_internal:"},{"line_number":3367,"context_line":"        conditions.append(models.Snapshot.use_quota)"},{"line_number":3368,"context_line":"    return sql.exists().where(and_(*conditions))"},{"line_number":3369,"context_line":""},{"line_number":3370,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"8a093327_c40a811c","line":3367,"in_reply_to":"7cd2ec49_5812c61a","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":7742,"context_line":"                    and_("},{"line_number":7743,"context_line":"                        models.Volume.id \u003d\u003d models.Snapshot.volume_id,"},{"line_number":7744,"context_line":"                        ~models.Snapshot.deleted,"},{"line_number":7745,"context_line":"                        models.Snapshot.use_quota,"},{"line_number":7746,"context_line":"                    )"},{"line_number":7747,"context_line":"                ),"},{"line_number":7748,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ad68f72_f50df521","line":7745,"updated":"2026-11-09 12:08:13.000000000","message":"Same for group delete: exclude the member volumes\u0027 recorded reference ids\nrather than every use_quota false snapshot.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":7742,"context_line":"                    and_("},{"line_number":7743,"context_line":"                        models.Volume.id \u003d\u003d models.Snapshot.volume_id,"},{"line_number":7744,"context_line":"                        ~models.Snapshot.deleted,"},{"line_number":7745,"context_line":"                        models.Snapshot.use_quota,"},{"line_number":7746,"context_line":"                    )"},{"line_number":7747,"context_line":"                ),"},{"line_number":7748,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":1,"id":"d91090d6_015182d0","line":7745,"in_reply_to":"1ad68f72_f50df521","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"}],"cinder/group/api.py":[{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":567,"context_line":"            snapshots \u003d ["},{"line_number":568,"context_line":"                snapshot for snapshot in"},{"line_number":569,"context_line":"                objects.SnapshotList.get_all_for_volume(context, volume[\u0027id\u0027])"},{"line_number":570,"context_line":"                if snapshot.use_quota]"},{"line_number":571,"context_line":"            if snapshots:"},{"line_number":572,"context_line":"                msg \u003d _(\"Volume in group still has \""},{"line_number":573,"context_line":"                        \"dependent snapshots.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"c06b5a70_50cc3c66","line":570,"updated":"2026-11-09 12:08:13.000000000","message":"`if snapshot.id not in adopted` with the volume\u0027s recorded reference ids.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":567,"context_line":"            snapshots \u003d ["},{"line_number":568,"context_line":"                snapshot for snapshot in"},{"line_number":569,"context_line":"                objects.SnapshotList.get_all_for_volume(context, volume[\u0027id\u0027])"},{"line_number":570,"context_line":"                if snapshot.use_quota]"},{"line_number":571,"context_line":"            if snapshots:"},{"line_number":572,"context_line":"                msg \u003d _(\"Volume in group still has \""},{"line_number":573,"context_line":"                        \"dependent snapshots.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"60c1a425_52d13372","line":570,"in_reply_to":"c06b5a70_50cc3c66","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"}],"cinder/volume/api.py":[{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":498,"context_line":"            # Don\u0027t allow deletion of volume with snapshots.  Cinder\u0027s own"},{"line_number":499,"context_line":"            # (use_quota\u003dFalse) snapshots do not count: the volume manager"},{"line_number":500,"context_line":"            # releases them with the volume."},{"line_number":501,"context_line":"            filters \u003d [~db.volume_has_snapshots_filter(exclude_internal\u003dTrue)]"},{"line_number":502,"context_line":"        values \u003d {\u0027status\u0027: \u0027deleting\u0027, \u0027terminated_at\u0027: timeutils.utcnow()}"},{"line_number":503,"context_line":"        if unmanage_only is True:"},{"line_number":504,"context_line":"            values[\u0027status\u0027] \u003d \u0027unmanaging\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1b7b5d16_41802c84","line":501,"updated":"2026-11-09 12:08:13.000000000","message":"Pass the volume\u0027s recorded adopted reference ids here.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":498,"context_line":"            # Don\u0027t allow deletion of volume with snapshots.  Cinder\u0027s own"},{"line_number":499,"context_line":"            # (use_quota\u003dFalse) snapshots do not count: the volume manager"},{"line_number":500,"context_line":"            # releases them with the volume."},{"line_number":501,"context_line":"            filters \u003d [~db.volume_has_snapshots_filter(exclude_internal\u003dTrue)]"},{"line_number":502,"context_line":"        values \u003d {\u0027status\u0027: \u0027deleting\u0027, \u0027terminated_at\u0027: timeutils.utcnow()}"},{"line_number":503,"context_line":"        if unmanage_only is True:"},{"line_number":504,"context_line":"            values[\u0027status\u0027] \u003d \u0027unmanaging\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"d169f519_2b61a4b6","line":501,"in_reply_to":"1b7b5d16_41802c84","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":1897,"context_line":""},{"line_number":1898,"context_line":"        # Cinder\u0027s own (use_quota\u003dFalse) snapshots do not block a migration:"},{"line_number":1899,"context_line":"        # the volume manager releases them before the source is moved."},{"line_number":1900,"context_line":"        filters \u003d [~db.volume_has_snapshots_filter(exclude_internal\u003dTrue)]"},{"line_number":1901,"context_line":""},{"line_number":1902,"context_line":"        updates \u003d {\u0027migration_status\u0027: \u0027starting\u0027,"},{"line_number":1903,"context_line":"                   \u0027previous_status\u0027: volume.model.status}"}],"source_content_type":"text/x-python","patch_set":1,"id":"66dbcfba_3e74ebf7","line":1900,"updated":"2026-11-09 12:08:13.000000000","message":"Same as delete: pass the recorded adopted reference ids.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":1897,"context_line":""},{"line_number":1898,"context_line":"        # Cinder\u0027s own (use_quota\u003dFalse) snapshots do not block a migration:"},{"line_number":1899,"context_line":"        # the volume manager releases them before the source is moved."},{"line_number":1900,"context_line":"        filters \u003d [~db.volume_has_snapshots_filter(exclude_internal\u003dTrue)]"},{"line_number":1901,"context_line":""},{"line_number":1902,"context_line":"        updates \u003d {\u0027migration_status\u0027: \u0027starting\u0027,"},{"line_number":1903,"context_line":"                   \u0027previous_status\u0027: volume.model.status}"}],"source_content_type":"text/x-python","patch_set":1,"id":"7668c5e9_7972ee2c","line":1900,"in_reply_to":"66dbcfba_3e74ebf7","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"}],"cinder/volume/manager.py":[{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":1179,"context_line":"            if self.driver.snapshot_revert_use_temp_snapshot():"},{"line_number":1180,"context_line":"                backup_snapshot \u003d self._create_backup_snapshot(context,"},{"line_number":1181,"context_line":"                                                               volume)"},{"line_number":1182,"context_line":"            self._revert_to_snapshot(context, volume, snapshot)"},{"line_number":1183,"context_line":"        except Exception as error:"},{"line_number":1184,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1185,"context_line":"                self._notify_about_volume_usage(context, volume,"}],"source_content_type":"text/x-python","patch_set":1,"id":"34140960_528b2b7f","line":1182,"updated":"2026-11-09 12:08:13.000000000","message":"With an adopted reference newer than the user\u0027s snapshot, the API refuses\nthe revert (cinder/api/v3/volumes.py:258, latest-snapshot check), so the\nuser can no longer revert after an in-use CBT backup. Suggest: the API\nignores recorded references in that check, and here, right before the\ndriver revert, _release_cbt_references(context, volume,\nexclude_snapshot_id\u003dsnapshot.id) (best-effort, never fails the revert).\nAfter a revert the old reference no longer describes the volume anyway;\nthe next backup re-bootstraps.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":1179,"context_line":"            if self.driver.snapshot_revert_use_temp_snapshot():"},{"line_number":1180,"context_line":"                backup_snapshot \u003d self._create_backup_snapshot(context,"},{"line_number":1181,"context_line":"                                                               volume)"},{"line_number":1182,"context_line":"            self._revert_to_snapshot(context, volume, snapshot)"},{"line_number":1183,"context_line":"        except Exception as error:"},{"line_number":1184,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1185,"context_line":"                self._notify_about_volume_usage(context, volume,"}],"source_content_type":"text/x-python","patch_set":1,"id":"2a670219_e61f5da2","line":1182,"in_reply_to":"34140960_528b2b7f","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":5687,"context_line":"                        {\u0027vol\u0027: volume.id, \u0027err\u0027: e})"},{"line_number":5688,"context_line":"            return"},{"line_number":5689,"context_line":"        for snapshot in snapshots:"},{"line_number":5690,"context_line":"            if snapshot.use_quota:"},{"line_number":5691,"context_line":"                continue"},{"line_number":5692,"context_line":"            LOG.info(\u0027Releasing internal snapshot %(snap)s of volume \u0027"},{"line_number":5693,"context_line":"                     \u0027%(vol)s.\u0027, {\u0027snap\u0027: snapshot.id, \u0027vol\u0027: volume.id})"}],"source_content_type":"text/x-python","patch_set":1,"id":"c3d5e385_b39fa161","line":5690,"updated":"2026-11-09 12:08:13.000000000","message":"Reproduced: revert fails -\u003e volume error with \"[revert] ... backup\nsnapshot\" left -\u003e user deletes their own snapshot -\u003e plain delete is\naccepted and this loop deletes the recovery snapshot (\"Releasing internal\nsnapshot \u003cid\u003e\"). Please delete only the snapshots recorded as\nreference_snapshot_cinder_id by the volume\u0027s backups.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":5687,"context_line":"                        {\u0027vol\u0027: volume.id, \u0027err\u0027: e})"},{"line_number":5688,"context_line":"            return"},{"line_number":5689,"context_line":"        for snapshot in snapshots:"},{"line_number":5690,"context_line":"            if snapshot.use_quota:"},{"line_number":5691,"context_line":"                continue"},{"line_number":5692,"context_line":"            LOG.info(\u0027Releasing internal snapshot %(snap)s of volume \u0027"},{"line_number":5693,"context_line":"                     \u0027%(vol)s.\u0027, {\u0027snap\u0027: snapshot.id, \u0027vol\u0027: volume.id})"}],"source_content_type":"text/x-python","patch_set":1,"id":"9cae29c7_f77c52ba","line":5690,"in_reply_to":"c3d5e385_b39fa161","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":5709,"context_line":"        the volume by ``_release_internal_snapshots`` and so never stand in"},{"line_number":5710,"context_line":"        the way of an operation on it."},{"line_number":5711,"context_line":"        \"\"\""},{"line_number":5712,"context_line":"        return any(snapshot.use_quota for snapshot in"},{"line_number":5713,"context_line":"                   objects.SnapshotList.get_all_for_volume(context,"},{"line_number":5714,"context_line":"                                                           volume_id))"},{"line_number":5715,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"67cb4544_eabdf4e2","line":5712,"updated":"2026-11-09 12:08:13.000000000","message":"Same rule for retype: any snapshot not in the recorded id set counts.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":5709,"context_line":"        the volume by ``_release_internal_snapshots`` and so never stand in"},{"line_number":5710,"context_line":"        the way of an operation on it."},{"line_number":5711,"context_line":"        \"\"\""},{"line_number":5712,"context_line":"        return any(snapshot.use_quota for snapshot in"},{"line_number":5713,"context_line":"                   objects.SnapshotList.get_all_for_volume(context,"},{"line_number":5714,"context_line":"                                                           volume_id))"},{"line_number":5715,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"900b81c6_ee6d046f","line":5712,"in_reply_to":"67cb4544_eabdf4e2","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"}],"releasenotes/notes/cbt-internal-snapshots-follow-the-volume-5e2b9c7d1a4f8036.yaml":[{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"043adcae3316b2655517383c064021ae51e196b6","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    which the Changed Block Tracking framework keeps alive as the reference"},{"line_number":6,"context_line":"    point of the volume\u0027s backup chain, no longer blocks deleting,"},{"line_number":7,"context_line":"    unmanaging, migrating or retyping that volume.  Cinder\u0027s own snapshots"},{"line_number":8,"context_line":"    (``consumes_quota`` false) are left out of the dependent-snapshot checks"},{"line_number":9,"context_line":"    and are released by ``cinder-volume`` together with the volume, in the"},{"line_number":10,"context_line":"    same step that releases the backend-only reference snapshots."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"a89a3579_b2016f56","line":8,"updated":"2026-11-09 12:08:13.000000000","message":"Would become: only snapshots a backup records as the volume\u0027s CBT\nreference are left out ...; other snapshots, including the recovery\nsnapshot of a failed revert, still block as before. Plus a line on\nrevert.","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"fbc774ef033969e9460f5b2e2ec31ebed463b75f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    which the Changed Block Tracking framework keeps alive as the reference"},{"line_number":6,"context_line":"    point of the volume\u0027s backup chain, no longer blocks deleting,"},{"line_number":7,"context_line":"    unmanaging, migrating or retyping that volume.  Cinder\u0027s own snapshots"},{"line_number":8,"context_line":"    (``consumes_quota`` false) are left out of the dependent-snapshot checks"},{"line_number":9,"context_line":"    and are released by ``cinder-volume`` together with the volume, in the"},{"line_number":10,"context_line":"    same step that releases the backend-only reference snapshots."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"24d220c8_cddac7ba","line":8,"in_reply_to":"a89a3579_b2016f56","updated":"2026-11-10 14:56:40.000000000","message":"Done","commit_id":"2f26a3bbcebc902915cec183a040b338c24f8183"}]}
