---
v3:
New patch
src/conf/storage_conf.c | 42 +++++++++++++---------
tests/storagepoolxml2xmlout/pool-netfs-gluster.xml | 2 --
tests/storagevolxml2xmlout/vol-gluster-dir.xml | 2 --
tests/storagevolxml2xmlout/vol-sheepdog.xml | 2 --
4 files changed, 26 insertions(+), 22 deletions(-)
diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index a02e504..7857a5e 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -1179,22 +1179,28 @@ virStoragePoolDefFormatBuf(virBufferPtr buf,
virBufferEscapeString(buf, "<path>%s</path>\n",
def->target.path);
- virBufferAddLit(buf, "<permissions>\n");
- virBufferAdjustIndent(buf, 2);
- if (def->target.perms.mode != (mode_t) -1)
- virBufferAsprintf(buf, "<mode>0%o</mode>\n",
- def->target.perms.mode);
- if (def->target.perms.uid != (uid_t) -1)
- virBufferAsprintf(buf, "<owner>%d</owner>\n",
- (int) def->target.perms.uid);
- if (def->target.perms.gid != (gid_t) -1)
- virBufferAsprintf(buf, "<group>%d</group>\n",
- (int) def->target.perms.gid);
- virBufferEscapeString(buf, "<label>%s</label>\n",
- def->target.perms.label);
+ if (def->target.perms.mode != (mode_t) -1 ||
+ def->target.perms.uid != (uid_t) -1 ||
+ def->target.perms.gid != (gid_t) -1 ||
+ def->target.perms.label) {
+ virBufferAddLit(buf, "<permissions>\n");
+ virBufferAdjustIndent(buf, 2);
+ if (def->target.perms.mode != (mode_t) -1)
+ virBufferAsprintf(buf, "<mode>0%o</mode>\n",
+ def->target.perms.mode);
+ if (def->target.perms.uid != (uid_t) -1)
+ virBufferAsprintf(buf, "<owner>%d</owner>\n",
+ (int) def->target.perms.uid);
+ if (def->target.perms.gid != (gid_t) -1)
+ virBufferAsprintf(buf, "<group>%d</group>\n",
+ (int) def->target.perms.gid);
+ virBufferEscapeString(buf, "<label>%s</label>\n",
+ def->target.perms.label);
+
+ virBufferAdjustIndent(buf, -2);
+ virBufferAddLit(buf, "</permissions>\n");
+ }
- virBufferAdjustIndent(buf, -2);
- virBufferAddLit(buf, "</permissions>\n");
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</target>\n");
}
@@ -1513,7 +1519,11 @@ virStorageVolTargetDefFormat(virStorageVolOptionsPtr options,
virBufferAsprintf(buf, "<format type='%s'/>\n", format);
}
- if (def->perms) {
+ if (def->perms &&
+ (def->perms->mode != (mode_t) -1 ||
+ def->perms->uid != (uid_t) -1 ||
+ def->perms->gid != (gid_t) -1 ||
+ def->perms->label)) {
virBufferAddLit(buf, "<permissions>\n");
virBufferAdjustIndent(buf, 2);
diff --git a/tests/storagepoolxml2xmlout/pool-netfs-gluster.xml
b/tests/storagepoolxml2xmlout/pool-netfs-gluster.xml
index 9e36cb6..dd7ffb5 100644
--- a/tests/storagepoolxml2xmlout/pool-netfs-gluster.xml
+++ b/tests/storagepoolxml2xmlout/pool-netfs-gluster.xml
@@ -11,7 +11,5 @@
</source>
<target>
<path>/mnt/gluster</path>
- <permissions>
- </permissions>
</target>
</pool>
diff --git a/tests/storagevolxml2xmlout/vol-gluster-dir.xml
b/tests/storagevolxml2xmlout/vol-gluster-dir.xml
index 37400b9..d422248 100644
--- a/tests/storagevolxml2xmlout/vol-gluster-dir.xml
+++ b/tests/storagevolxml2xmlout/vol-gluster-dir.xml
@@ -8,7 +8,5 @@
<target>
<
path>gluster://example.com/vol/dir</path>
<format type='dir'/>
- <permissions>
- </permissions>
</target>
</volume>
diff --git a/tests/storagevolxml2xmlout/vol-sheepdog.xml
b/tests/storagevolxml2xmlout/vol-sheepdog.xml
index fe1879f..e1d6a9e 100644
--- a/tests/storagevolxml2xmlout/vol-sheepdog.xml
+++ b/tests/storagevolxml2xmlout/vol-sheepdog.xml
@@ -7,7 +7,5 @@
<target>
<path>sheepdog:test2</path>
<format type='unknown'/>
- <permissions>
- </permissions>
</target>
</volume>
--
2.4.1