On Wed, Oct 26, 2011 at 02:31:16PM +0200, Kevin Wolf wrote: > @@ -2039,11 +2039,7 @@ const char > *bdrv_get_encrypted_filename(BlockDriverState *bs) > void bdrv_get_backing_filename(BlockDriverState *bs, > char *filename, int filename_size) > { > - if (!bs->backing_file) { > - pstrcpy(filename, filename_size, ""); > - } else { > - pstrcpy(filename, filename_size, bs->backing_file); > - } > + pstrcpy(filename, filename_size, bs->backing_file); > }
I think this points to another problem: bs->backing_file[] is never cleared across bdrv_close()/bdrv_open(). If we open an image file that uses a backing file, then close the BlockDriverState, and then open a file which does not use a backing file we're left with the old backing file! Stefan