Re: [PATCH] [v3] storage: Ignore dangling symbolic link for filesystem pool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]