56476f6 storage: fs: Ignore volumes that fail to open with EACCESS/EPERM

Authored and Committed by crobinso 9 years ago
    storage: fs: Ignore volumes that fail to open with EACCESS/EPERM
    
    Trying to use qemu:///session to create a storage pool pointing at
    /tmp will usually fail with something like:
    
    $ virsh pool-start tmp
    error: Failed to start pool tmp
    error: cannot open volume '/tmp/systemd-private-c38cf0418d7a4734a66a8175996c384f-colord.service-kEyiTA': Permission denied
    
    If any volume in an FS pool can't be opened by the daemon, the refresh
    fails, and the pool can't be used.
    
    This causes pain for virt-install/virt-manager though. Imaging a user
    downloads a disk image to /tmp. virt-manager wants to import /tmp as
    a storage pool, so we can detect what disk format it is, and set the
    XML correctly. However this case will likely fail as explained above.
    
    Change the logic here to skip volumes that fail to open. This could
    conceivably cause user complaints along the lines of 'why doesn't
    libvirt show $ROOT-OWNED-VOLUME-FOO', but figuring that currently
    the pool won't even startup, I don't think there are any current
    users that care about that case.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1103308