If a snapshot is larger than a backing file, then the offline bdrv_commit and the live active layer commit will fail with an i/o error (usually). A live commit of a non-active layer will complete successfully, as it runs bdrv_truncate() on the backing image to resize it to the larger size.
For both bdrv_commit() and commit_active_start(), this series will resize the underlying base image if needed. If the resize fails, an error will be returned. Jeff Cody (2): block: resize backing file image during offline commit, if necessary block: resize backing image during active layer commit, if needed block.c | 18 +++++++++++++++--- block/mirror.c | 13 +++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) -- 1.8.3.1