When selinux is on, we get tons of new xattrs, which messes
up all kinds of output.
The simplest way out of this, for now, seems to be to just mount
with a global context instead and skip writing the extra xattrs.
I've been using this internally on Fedora and RHEL for a while now.
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Dave Chinner <david@fromorbit.com>
_scratch_filter()
{
sed -e "s#$SCRATCH_DEV#SCRATCH_DEV#" \
- -e "s#$SCRATCH_MNT#SCRATCH_MNT#"
+ -e "s#$SCRATCH_MNT#SCRATCH_MNT#" \
+ -e "s#,context.*s0\"##"
}
_check_mount()
_mount_opts()
{
+ # SELinux adds extra xattrs which can mess up our expected output.
+ # So, mount with a context, and they won't be created
+ # nfs_t is a "liberal" context so we can use it.
+ if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
+ SELINUX_MOUNT_OPTIONS="-o context=system_u:object_r:nfs_t:s0"
+ fi
+
case $FSTYP in
xfs)
+ export SELINUX_MOUNT_OPTIONS
export MOUNT_OPTIONS=$XFS_MOUNT_OPTIONS
;;
udf)
{
_scratch_options mount
- echo $SCRATCH_OPTIONS $MOUNT_OPTIONS $* $SCRATCH_DEV $SCRATCH_MNT
+ echo $SCRATCH_OPTIONS $MOUNT_OPTIONS $SELINUX_MOUNT_OPTIONS $* $SCRATCH_DEV $SCRATCH_MNT
}
_scratch_mount()
_test_mount()
{
_test_options mount
- _mount -t $FSTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $* $TEST_DEV $TEST_DIR
+ _mount -t $FSTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR
}
_scratch_mkfs_options()