We need to fix labels if the user requests on volumes
Currently local volumes and other volumes that support SELinux do not get labeled correctly. This patch will allow a user to specify :Z or :z when mounting a volume and have it fix the label of the newly created volume. Signed-off-by: Dan Walsh <dwalsh@redhat.com>
This commit is contained in:
parent
9c96768eae
commit
0c791c8e9f
1 changed files with 14 additions and 6 deletions
|
@ -124,7 +124,20 @@ type MountPoint struct {
|
|||
|
||||
// Setup sets up a mount point by either mounting the volume if it is
|
||||
// configured, or creating the source directory if supplied.
|
||||
func (m *MountPoint) Setup(mountLabel string, rootUID, rootGID int) (string, error) {
|
||||
func (m *MountPoint) Setup(mountLabel string, rootUID, rootGID int) (path string, err error) {
|
||||
defer func() {
|
||||
if err == nil {
|
||||
if label.RelabelNeeded(m.Mode) {
|
||||
if err = label.Relabel(m.Source, mountLabel, label.IsShared(m.Mode)); err != nil {
|
||||
path = ""
|
||||
err = errors.Wrapf(err, "error setting label on mount source '%s'", m.Source)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}()
|
||||
|
||||
if m.Volume != nil {
|
||||
id := m.ID
|
||||
if id == "" {
|
||||
|
@ -152,11 +165,6 @@ func (m *MountPoint) Setup(mountLabel string, rootUID, rootGID int) (string, err
|
|||
}
|
||||
}
|
||||
}
|
||||
if label.RelabelNeeded(m.Mode) {
|
||||
if err := label.Relabel(m.Source, mountLabel, label.IsShared(m.Mode)); err != nil {
|
||||
return "", errors.Wrapf(err, "error setting label on mount source '%s'", m.Source)
|
||||
}
|
||||
}
|
||||
return m.Source, nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue