unsigned int flags)
{
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
+ mode_t permmode = VIR_STORAGE_DEFAULT_VOL_PERM_MODE;
+ unsigned int createflags = 0;
virCheckFlags(0, -1);
return -1;
}
+ if (vol->target.perms->mode != (mode_t)-1)
+ permmode = vol->target.perms->mode;
+
+ if (def->type == VIR_STORAGE_POOL_NETFS)
+ createflags |= VIR_DIR_CREATE_AS_UID;
if (virDirCreate(vol->target.path,
- (vol->target.perms->mode == (mode_t)-1 ?
- VIR_STORAGE_DEFAULT_VOL_PERM_MODE :
- vol->target.perms->mode),
+ permmode,
vol->target.perms->uid,
vol->target.perms->gid,
- (def->type == VIR_STORAGE_POOL_NETFS
- ? VIR_DIR_CREATE_AS_UID : 0)) < 0) {
+ createflags) < 0) {
return -1;
}