On 04/28/2015 07:50 AM, Ján Tomko wrote: > The summary says 'EPERM', but the code checks for EACCES. > > On Mon, Apr 27, 2015 at 11:57:53AM -0400, Cole Robinson wrote: >> 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 >> --- >> src/storage/storage_backend.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c >> index e0311e1..186013c 100644 >> --- a/src/storage/storage_backend.c >> +++ b/src/storage/storage_backend.c >> @@ -1445,6 +1445,10 @@ virStorageBackendVolOpen(const char *path, struct stat *sb, >> VIR_WARN("ignoring missing fifo '%s'", path); >> return -2; >> } >> + if (errno == EACCES && noerror) { > > Looking at open(2) we are unlikely to hit EPERM, but maybe it would be > better to look for both? > >> + VIR_WARN("ignore permission error for '%s'", path); > > s/ignore/ignoring/ to match the other warnings > > ACK whether you check EPERM or not, as long as you tweak the commit > summary. > Hmm, I got my error codes confused :) I added the EPERM check, fixed the error message and the commit message, and pushed Thanks, Cole -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list