On Tue, Aug 21, 2012 at 03:42:37PM +0200, Jiri Denemark wrote: > Generating "Unable to add lockspace /lock/space/dir/__LIBVIRT__DISKS__: > No such file or directory" is correct but not exactly clear. This patch > changes the error message to "Unable to create lockspace > /lock/space/dir/__LIBVIRT__DISKS__: parent directory does not exist or > is not a directory". > --- > src/locking/lock_driver_sanlock.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c > index f046102..7700b31 100644 > --- a/src/locking/lock_driver_sanlock.c > +++ b/src/locking/lock_driver_sanlock.c > @@ -35,6 +35,7 @@ > #include <sanlock_resource.h> > #include <sanlock_admin.h> > > +#include "dirname.h" > #include "lock_driver.h" > #include "logging.h" > #include "virterror_internal.h" > @@ -150,6 +151,7 @@ static int virLockManagerSanlockSetupLockspace(void) > int rv; > struct sanlk_lockspace ls; > char *path = NULL; > + char *dir = NULL; > > if (virAsprintf(&path, "%s/%s", > driver->autoDiskLeasePath, > @@ -174,6 +176,19 @@ static int virLockManagerSanlockSetupLockspace(void) > */ > if (stat(path, &st) < 0) { > VIR_DEBUG("Lockspace %s does not yet exist", path); > + > + if (!(dir = mdir_name(path))) { > + virReportOOMError(); > + goto error; > + } > + if (stat(dir, &st) < 0 || !S_ISDIR(st.st_mode)) { > + virReportError(VIR_ERR_INTERNAL_ERROR, > + _("Unable to create lockspace %s: parent directory" > + " does not exist or is not a directory"), > + path); > + goto error; > + } > + > if ((fd = open(path, O_WRONLY|O_CREAT|O_EXCL, 0600)) < 0) { > if (errno != EEXIST) { > virReportSystemError(errno, > @@ -257,6 +272,7 @@ error_unlink: > error: > VIR_FORCE_CLOSE(fd); > VIR_FREE(path); > + VIR_FREE(dir); > return -1; > } ACK 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