On Tue, Jul 16, 2013 at 08:14:54AM +0200, Martin Kletzander wrote: > On 07/15/2013 05:31 PM, Ján Tomko wrote: > > On 07/02/2013 11:35 AM, Guannan Ren wrote: > >> If one of backing files for disk source doesn't exist, the guest will not > >> be able to find and use the disk even though the disk still exists in > >> guest xml definition. So reporting an error make more sense. > >> > >> Adding virFileAccessibleAs() to check if the backing file described in > >> disk meta exist in real path. If not, report error. the uid and gid > >> arguments don't have so much meannings for F_OK, so give 0 for them. > >> --- > >> src/util/virstoragefile.c | 23 +++++++++++++++-------- > >> tests/virstoragetest.c | 16 ++++++++-------- > >> 2 files changed, 23 insertions(+), 16 deletions(-) > >> > >> diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c > >> index 27aa4fe..cb61e5b 100644 > >> --- a/src/util/virstoragefile.c > >> +++ b/src/util/virstoragefile.c > > > >> @@ -870,14 +877,10 @@ virStorageFileGetMetadataInternal(const char *path, > >> !!directory, backing, > >> &meta->directory, > >> &meta->backingStore) < 0) { > >> - /* the backing file is (currently) unavailable, treat this > >> - * 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_ERROR(_("Backing file '%s' of image '%s' is missing."), > >> + meta->backingStoreRaw, path); > >> + VIR_FREE(backing); > >> + goto cleanup; > >> } > >> } > >> VIR_FREE(backing); > > > > This change means you won't be able to start the pool if one of the files is > > missing a backing file. I've forwarded a patch [1] from/for [2] that ignores > > missing files on pool start and there is a bug [3] requesting that we ignore > > other files as well. I feel like this is going in the other direction. > > > > Wouldn't it be enough to check for them on domain start-up and leave the pool > > running even if one of those volumes doesn't have an existing backing file? > > > > How about making it configurable for the pool? There are definitely > some users who want the pool to reflect actual info after pool-refresh. I don't think this needs to be configurable. The pool should show *every* single file, regardless of whether the file has a broken backing file. We shouldn't be trying to second guess what the user wants to do with a image with broken backing file. Just expose as much info as we have and let them deal with the problem. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list