On 12/20/2010 11:45 PM, Osier Yang wrote: > If there is a dangling symbolic link in filesystem pool, the pool > will fail to start or refresh, this patch is to fix it by ignoring > it with a warning log. > --- > src/storage/storage_backend.c | 10 +++++++++- > src/storage/storage_backend_fs.c | 2 +- > 2 files changed, 10 insertions(+), 2 deletions(-) > > @@ -986,6 +987,13 @@ virStorageBackendVolOpenCheckMode(const char *path, unsigned int flags) > struct stat sb; > > if ((fd = open(path, O_RDONLY|O_NONBLOCK|O_NOCTTY)) < 0) { > + if (stat(path, &sb) < 0 && > + (errno == ENOENT || errno == ELOOP)) { > + VIR_WARN(_("cannot open volume '%s' :%s"), path, > + strerror(errno)); > + return -2; > + } Given my comments here: https://www.redhat.com/archives/libvir-list/2010-December/msg00826.html I'm squashing this in, then pushing. Thanks for tackling this one. diff --git i/src/storage/storage_backend.c w/src/storage/storage_backend.c index efdd258..66775e9 100644 --- i/src/storage/storage_backend.c +++ w/src/storage/storage_backend.c @@ -987,8 +987,8 @@ virStorageBackendVolOpenCheckMode(const char *path, unsigned int flags) struct stat sb; if ((fd = open(path, O_RDONLY|O_NONBLOCK|O_NOCTTY)) < 0) { - if (stat(path, &sb) < 0 && - (errno == ENOENT || errno == ELOOP)) { + if ((errno == ENOENT || errno == ELOOP) && + lstat(path, &sb) == 0) { VIR_WARN(_("cannot open volume '%s' :%s"), path, strerror(errno)); return -2; -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list