On Thu, Jan 17, 2019 at 04:22:07PM -0500, John Ferlan wrote: > https://bugzilla.redhat.com/show_bug.cgi?id=1584663 > > Modify the command generation to add some default options to > an NFS Storage Pool based on the OS type. For Linux, it'll be > the "nodev, nosuid, noexec". For FreeBSD, it'll be "nosuid, noexec". > For others, just leave the options alone. > > Modify the storagepoolxml2argvtest to handle the fact that the > same input XML could generate different output XML based on whether > Linux, FreeBSD, or other was being built. > > Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx> > --- > src/storage/storage_util.c | 16 ++++++++ > .../pool-netfs-auto-freebsd.argv | 1 + > .../pool-netfs-auto-linux.argv | 1 + > .../pool-netfs-freebsd.argv | 1 + > .../pool-netfs-linux.argv | 1 + > tests/storagepoolxml2argvtest.c | 40 +++++++++++++++---- > 6 files changed, 53 insertions(+), 7 deletions(-) > create mode 100644 tests/storagepoolxml2argvdata/pool-netfs-auto-freebsd.argv > create mode 100644 tests/storagepoolxml2argvdata/pool-netfs-auto-linux.argv > create mode 100644 tests/storagepoolxml2argvdata/pool-netfs-freebsd.argv > create mode 100644 tests/storagepoolxml2argvdata/pool-netfs-linux.argv > > diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c > index a84ee5b600..44a95d9fab 100644 > --- a/src/storage/storage_util.c > +++ b/src/storage/storage_util.c > @@ -34,6 +34,11 @@ > # ifndef FS_NOCOW_FL > # define FS_NOCOW_FL 0x00800000 /* Do not cow file */ > # endif > +# define default_nfs_mount_opts "nodev,nosuid,noexec" > +#elif defined(__FreeBSD__) > +# define default_nfs_mount_opts "nosuid,noexec" > +#else > +# define default_nfs_mount_opts "" > #endif > > #if WITH_BLKID > @@ -4261,12 +4266,21 @@ virStorageBackendFileSystemGetPoolSource(virStoragePoolObjPtr pool) > } > > > +static void > +virStorageBackendFileSystemMountNFSAddOptions(virCommandPtr cmd) > +{ > + if (*default_nfs_mount_opts != '\0') > + virCommandAddArgList(cmd, "-o", default_nfs_mount_opts, NULL); > +} > + > + > static void > virStorageBackendFileSystemMountNFSArgs(virCommandPtr cmd, > const char *src, > virStoragePoolDefPtr def) > { > virCommandAddArgList(cmd, src, def->target.path, NULL); > + virStorageBackendFileSystemMountNFSAddOptions(cmd); > } > > > @@ -4308,6 +4322,8 @@ virStorageBackendFileSystemMountDefaultArgs(virCommandPtr cmd, > else > fmt = virStoragePoolFormatFileSystemNetTypeToString(def->source.format); > virCommandAddArgList(cmd, "-t", fmt, src, def->target.path, NULL); > + if (def->type == VIR_STORAGE_POOL_NETFS) > + virStorageBackendFileSystemMountNFSAddOptions(cmd); This doesn't need to be restricted to just NFS. A kind of filesystem we mount as a storage pool should use these extra options, as they are general purpose mount options, not FS specific. Just s/nfs//i in all the method names / constants. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list