1*8597af76SPeter Xu /* 2*8597af76SPeter Xu * Block activation tracking for migration purpose 3*8597af76SPeter Xu * 4*8597af76SPeter Xu * SPDX-License-Identifier: GPL-2.0-or-later 5*8597af76SPeter Xu * 6*8597af76SPeter Xu * Copyright (C) 2024 Red Hat, Inc. 7*8597af76SPeter Xu */ 8*8597af76SPeter Xu #include "qemu/osdep.h" 9*8597af76SPeter Xu #include "block/block.h" 10*8597af76SPeter Xu #include "qapi/error.h" 11*8597af76SPeter Xu #include "migration/migration.h" 12*8597af76SPeter Xu #include "qemu/error-report.h" 13*8597af76SPeter Xu #include "trace.h" 14*8597af76SPeter Xu migration_block_activate(Error ** errp)15*8597af76SPeter Xubool migration_block_activate(Error **errp) 16*8597af76SPeter Xu { 17*8597af76SPeter Xu ERRP_GUARD(); 18*8597af76SPeter Xu 19*8597af76SPeter Xu assert(bql_locked()); 20*8597af76SPeter Xu 21*8597af76SPeter Xu trace_migration_block_activation("active"); 22*8597af76SPeter Xu 23*8597af76SPeter Xu bdrv_activate_all(errp); 24*8597af76SPeter Xu if (*errp) { 25*8597af76SPeter Xu error_report_err(error_copy(*errp)); 26*8597af76SPeter Xu return false; 27*8597af76SPeter Xu } 28*8597af76SPeter Xu 29*8597af76SPeter Xu return true; 30*8597af76SPeter Xu } 31*8597af76SPeter Xu migration_block_inactivate(void)32*8597af76SPeter Xubool migration_block_inactivate(void) 33*8597af76SPeter Xu { 34*8597af76SPeter Xu int ret; 35*8597af76SPeter Xu 36*8597af76SPeter Xu assert(bql_locked()); 37*8597af76SPeter Xu 38*8597af76SPeter Xu trace_migration_block_activation("inactive"); 39*8597af76SPeter Xu 40*8597af76SPeter Xu ret = bdrv_inactivate_all(); 41*8597af76SPeter Xu if (ret) { 42*8597af76SPeter Xu error_report("%s: bdrv_inactivate_all() failed: %d", 43*8597af76SPeter Xu __func__, ret); 44*8597af76SPeter Xu return false; 45*8597af76SPeter Xu } 46*8597af76SPeter Xu 47*8597af76SPeter Xu return true; 48*8597af76SPeter Xu } 49