On 11/22/2012 07:50 AM, Peter Krempa wrote: > Commit e0c469e58b93f852a72265919703cb6abd3779f8 that fixes the detection > of image chain wasn't complete. Iteration through the backing image > chain has to stop at the last existing image if some of the images are > missing otherwise the backing chain that is cached contains entries with > paths being set to NULL resulting to: > > error: Unable to allow access for disk path (null): Bad address > > Fortunately stat() is kind enough not to crash when it's presented with > a NULL argument. At least on Linux. > --- > Left meta->backingStoreRaw in place to mark broken chains, added a comment > and a warning. > --- > src/util/storage_file.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-)
ACK.
>
> diff --git a/src/util/storage_file.c b/src/util/storage_file.c
> index 2249212..4417404 100644
> --- a/src/util/storage_file.c
> +++ b/src/util/storage_file.c
> @@ -728,8 +728,13 @@ virStorageFileGetMetadataFromBuf(int format,
> meta->backingStore = absolutePathFromBaseFile(path, backing);
> if (meta->backingStore == NULL) {
> /* the backing file is (currently) unavailable, treat
> this
> - * file as standalone */
> + * file as standalone:
> + * backingStoreRaw is kept to mark broken image chains */
> + meta->backingStoreIsFile = false;
> backingFormat = VIR_STORAGE_FILE_NONE;
> + VIR_WARN("Backing file '%s' of image '%s' is missing.",
> + meta->backingStoreRaw, path);
> +
> }
> }
> VIR_FREE(backing);
>
--
Eric Blake [email protected] +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
