[libvirt] [PATCH v2 3/3] storage: Generate correct parameters for CIFS

2015-06-15 Thread John Ferlan
https://bugzilla.redhat.com/show_bug.cgi?id=1186969

When generating the path to the dir for a CIFS/Samba driver, the code
would generate a source path for the mount using "%s:%s" while the
mount.cifs expects to see "//%s/%s". So check for the cifsfs and
format the source path appropriately.

Additionally, since there is no means to authenticate, the mount
needs a "-o guest" on the command line in order to anonymously mount
the Samba directory.

Signed-off-by: John Ferlan 
---
 docs/formatstorage.html.in   |  7 +--
 docs/storage.html.in |  3 ++-
 src/storage/storage_backend_fs.c | 27 ++-
 3 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in
index 17558f8..b6f4361 100644
--- a/docs/formatstorage.html.in
+++ b/docs/formatstorage.html.in
@@ -124,11 +124,14 @@
 Since 0.4.1
   dir
   Provides the source for pools backed by directories (pool
-type dir), or optionally to select a subdirectory
+types dir, netfs, gluster),
+or optionally to select a subdirectory
 within a pool that resembles a filesystem (pool
 type gluster). May
 only occur once. Contains a single attribute path
-which is the fully qualified path to the backing directory.
+which is the fully qualified path to the backing directory or
+for a netfs pool type using format
+type "cifs", the path to the Samba share without the leading slash.
 Since 0.4.1
   adapter
   Provides the source for pools backed by SCSI adapters (pool
diff --git a/docs/storage.html.in b/docs/storage.html.in
index 92e9ae7..0b467d5 100644
--- a/docs/storage.html.in
+++ b/docs/storage.html.in
@@ -291,7 +291,8 @@
 the gluster pool.)
   
   
-cifs - use the SMB (samba) or CIFS file system
+cifs - use the SMB (samba) or CIFS file system.
+The mount will use "-o guest" to mount the directory anonymously.
   
 
 
diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index d2cf470..b751687 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -426,6 +426,8 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr pool)
 pool->def->source.format == VIR_STORAGE_POOL_NETFS_AUTO);
 bool glusterfs = (pool->def->type == VIR_STORAGE_POOL_NETFS &&
   pool->def->source.format == 
VIR_STORAGE_POOL_NETFS_GLUSTERFS);
+bool cifsfs = (pool->def->type == VIR_STORAGE_POOL_NETFS &&
+   pool->def->source.format == VIR_STORAGE_POOL_NETFS_CIFS);
 virCommandPtr cmd = NULL;
 int ret = -1;
 int rc;
@@ -444,11 +446,17 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr 
pool)
 }
 
 if (pool->def->type == VIR_STORAGE_POOL_NETFS) {
-if (virAsprintf(&src, "%s:%s",
-pool->def->source.hosts[0].name,
-pool->def->source.dir) == -1)
-return -1;
-
+if (pool->def->source.format == VIR_STORAGE_POOL_NETFS_CIFS) {
+if (virAsprintf(&src, "//%s/%s",
+pool->def->source.hosts[0].name,
+pool->def->source.dir) == -1)
+return -1;
+} else {
+if (virAsprintf(&src, "%s:%s",
+pool->def->source.hosts[0].name,
+pool->def->source.dir) == -1)
+return -1;
+}
 } else {
 if (VIR_STRDUP(src, pool->def->source.devices[0].path) < 0)
 return -1;
@@ -468,6 +476,15 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr pool)
"direct-io-mode=1",
pool->def->target.path,
NULL);
+else if (cifsfs)
+cmd = virCommandNewArgList(MOUNT,
+   "-t",
+   
virStoragePoolFormatFileSystemNetTypeToString(pool->def->source.format),
+   src,
+   pool->def->target.path,
+   "-o",
+   "guest",
+   NULL);
 else
 cmd = virCommandNewArgList(MOUNT,
"-t",
-- 
2.1.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH v2 3/3] storage: Generate correct parameters for CIFS

2015-06-16 Thread Peter Krempa
On Mon, Jun 15, 2015 at 17:30:37 -0400, John Ferlan wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1186969
> 
> When generating the path to the dir for a CIFS/Samba driver, the code
> would generate a source path for the mount using "%s:%s" while the
> mount.cifs expects to see "//%s/%s". So check for the cifsfs and
> format the source path appropriately.
> 
> Additionally, since there is no means to authenticate, the mount
> needs a "-o guest" on the command line in order to anonymously mount
> the Samba directory.
> 
> Signed-off-by: John Ferlan 
> ---
>  docs/formatstorage.html.in   |  7 +--
>  docs/storage.html.in |  3 ++-
>  src/storage/storage_backend_fs.c | 27 ++-
>  3 files changed, 29 insertions(+), 8 deletions(-)
>

ACK,

Peter


signature.asc
Description: Digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list