Blame SOURCES/0025-policycoreutils-fixfiles-Use-parallel-relabeling.patch

8db498
From 09f700e9f953769d1697c46179faba32e4b80c0f Mon Sep 17 00:00:00 2001
8db498
From: Petr Lautrbach <plautrba@redhat.com>
8db498
Date: Fri, 4 Feb 2022 13:41:12 +0100
8db498
Subject: [PATCH] policycoreutils/fixfiles: Use parallel relabeling
8db498
8db498
Commit 93902fc8340f ("setfiles/restorecon: support parallel relabeling")
8db498
implemented support for parallel relabeling in setfiles. This is
8db498
available for fixfiles now.
8db498
8db498
Signed-off-by: Petr Lautrbach <plautrba@redhat.com>
8db498
---
8db498
 policycoreutils/scripts/fixfiles   | 35 +++++++++++++++++-------------
8db498
 policycoreutils/scripts/fixfiles.8 | 17 ++++++++++-----
8db498
 2 files changed, 31 insertions(+), 21 deletions(-)
8db498
8db498
diff --git a/policycoreutils/scripts/fixfiles b/policycoreutils/scripts/fixfiles
8db498
index cb20002ab613..a4a419ab62de 100755
8db498
--- a/policycoreutils/scripts/fixfiles
8db498
+++ b/policycoreutils/scripts/fixfiles
8db498
@@ -110,6 +110,7 @@ BOOTTIME=""
8db498
 VERBOSE="-p"
8db498
 [ -t 1 ] || VERBOSE=""
8db498
 FORCEFLAG=""
8db498
+THREADS=""
8db498
 RPMFILES=""
8db498
 PREFC=""
8db498
 RESTORE_MODE=""
8db498
@@ -153,7 +154,7 @@ newer() {
8db498
     shift
8db498
     LogReadOnly
8db498
     for m in `echo $FILESYSTEMSRW`; do
8db498
-	find $m -mount -newermt $DATE -print0 2>/dev/null | ${RESTORECON} ${FORCEFLAG} ${VERBOSE} $* -i -0 -f -
8db498
+	find $m -mount -newermt $DATE -print0 2>/dev/null | ${RESTORECON} ${FORCEFLAG} ${VERBOSE} ${THREADS} $* -i -0 -f -
8db498
     done;
8db498
 }
8db498
 
8db498
@@ -197,7 +198,7 @@ if [ -f ${PREFC} -a -x /usr/bin/diff ]; then
8db498
 		  esac; \
8db498
 	       fi; \
8db498
 	    done | \
8db498
-	${RESTORECON} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} $* -i -R -f -; \
8db498
+	${RESTORECON} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} ${THREADS} $* -i -R -f -; \
8db498
 	rm -f ${TEMPFILE} ${PREFCTEMPFILE}
8db498
 fi
8db498
 }
8db498
@@ -235,11 +236,11 @@ LogExcluded
8db498
 case "$RESTORE_MODE" in
8db498
     RPMFILES)
8db498
 	for i in `echo "$RPMFILES" | sed 's/,/ /g'`; do
8db498
-	    rpmlist $i | ${RESTORECON} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} $* -i -R -f -
8db498
+	    rpmlist $i | ${RESTORECON} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} ${THREADS} $* -i -R -f -
8db498
 	done
8db498
     ;;
8db498
     FILEPATH)
8db498
-	${RESTORECON} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} $* -R -- "$FILEPATH"
8db498
+	${RESTORECON} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} ${THREADS} $* -R -- "$FILEPATH"
8db498
     ;;
8db498
     *)
8db498
 	if [ -n "${FILESYSTEMSRW}" ]; then
8db498
@@ -247,7 +248,7 @@ case "$RESTORE_MODE" in
8db498
 	    echo "${OPTION}ing `echo ${FILESYSTEMSRW}`"
8db498
 
8db498
 	    if [ -z "$BIND_MOUNT_FILESYSTEMS" ]; then
8db498
-	        ${SETFILES} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} $* -q ${FC} ${FILESYSTEMSRW}
8db498
+	        ${SETFILES} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} $* -q ${THREADS} ${FC} ${FILESYSTEMSRW}
8db498
 	    else
8db498
 	        # we bind mount so we can fix the labels of files that have already been
8db498
 	        # mounted over
8db498
@@ -257,7 +258,7 @@ case "$RESTORE_MODE" in
8db498
 
8db498
 	            mkdir -p "${TMP_MOUNT}${m}" || exit 1
8db498
 	            mount --bind "${m}" "${TMP_MOUNT}${m}" || exit 1
8db498
-	            ${SETFILES} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} $* -q ${FC} -r "${TMP_MOUNT}" "${TMP_MOUNT}${m}"
8db498
+	            ${SETFILES} ${VERBOSE} ${EXCLUDEDIRS} ${FORCEFLAG} ${THREADS} $* -q ${FC} -r "${TMP_MOUNT}" "${TMP_MOUNT}${m}"
8db498
 	            umount "${TMP_MOUNT}${m}" || exit 1
8db498
 	            rm -rf "${TMP_MOUNT}" || echo "Error cleaning up."
8db498
 	        done;
8db498
@@ -330,8 +331,9 @@ case "$1" in
8db498
 	fi
8db498
 	> /.autorelabel || exit $?
8db498
 	[ -z "$FORCEFLAG" ] || echo -n "$FORCEFLAG " >> /.autorelabel
8db498
-	[ -z "$BOOTTIME" ] || echo -N $BOOTTIME >> /.autorelabel
8db498
-	[ -z "$BIND_MOUNT_FILESYSTEMS" ] || echo "-M" >> /.autorelabel
8db498
+	[ -z "$BOOTTIME" ] || echo -n "-N $BOOTTIME " >> /.autorelabel
8db498
+	[ -z "$BIND_MOUNT_FILESYSTEMS" ] || echo -n "-M " >> /.autorelabel
8db498
+	[ -z "$THREADS" ] || echo -n "$THREADS " >> /.autorelabel
8db498
 	# Force full relabel if SELinux is not enabled
8db498
 	selinuxenabled || echo -F > /.autorelabel
8db498
 	echo "System will relabel on next boot"
8db498
@@ -343,17 +345,17 @@ esac
8db498
 }
8db498
 usage() {
8db498
 	echo $"""
8db498
-Usage: $0 [-v] [-F] [-M] [-f] relabel
8db498
+Usage: $0 [-v] [-F] [-M] [-f] [-T nthreads] relabel
8db498
 or
8db498
-Usage: $0 [-v] [-F] [-B | -N time ] { check | restore | verify }
8db498
+Usage: $0 [-v] [-F] [-B | -N time ]  [-T nthreads] { check | restore | verify }
8db498
 or
8db498
-Usage: $0 [-v] [-F] { check | restore | verify } dir/file ...
8db498
+Usage: $0 [-v] [-F] [-T nthreads] { check | restore | verify } dir/file ...
8db498
 or
8db498
-Usage: $0 [-v] [-F] -R rpmpackage[,rpmpackage...] { check | restore | verify }
8db498
+Usage: $0 [-v] [-F] [-T nthreads] -R rpmpackage[,rpmpackage...] { check | restore | verify }
8db498
 or
8db498
-Usage: $0 [-v] [-F] -C PREVIOUS_FILECONTEXT { check | restore | verify }
8db498
+Usage: $0 [-v] [-F] [-T nthreads] -C PREVIOUS_FILECONTEXT { check | restore | verify }
8db498
 or
8db498
-Usage: $0 [-F] [-M] [-B] onboot
8db498
+Usage: $0 [-F] [-M] [-B] [-T nthreads] onboot
8db498
 """
8db498
 }
8db498
 
8db498
@@ -372,7 +374,7 @@ set_restore_mode() {
8db498
 }
8db498
 
8db498
 # See how we were called.
8db498
-while getopts "N:BC:FfR:l:vM" i; do
8db498
+while getopts "N:BC:FfR:l:vMT:" i; do
8db498
     case "$i" in
8db498
 	B)
8db498
 		BOOTTIME=`/bin/who -b | awk '{print $3}'`
8db498
@@ -407,6 +409,9 @@ while getopts "N:BC:FfR:l:vM" i; do
8db498
 	f)
8db498
 		fullFlag=1
8db498
 		;;
8db498
+	T)
8db498
+		THREADS="-T $OPTARG"
8db498
+		;;
8db498
 	*)
8db498
 	    usage
8db498
 	    exit 1
8db498
diff --git a/policycoreutils/scripts/fixfiles.8 b/policycoreutils/scripts/fixfiles.8
8db498
index c4e894e56e8f..9a317d9181e2 100644
8db498
--- a/policycoreutils/scripts/fixfiles.8
8db498
+++ b/policycoreutils/scripts/fixfiles.8
8db498
@@ -6,22 +6,22 @@ fixfiles \- fix file SELinux security contexts.
8db498
 .na
8db498
 
8db498
 .B fixfiles
8db498
-.I [\-v] [\-F] [-M] [\-f] relabel
8db498
+.I [\-v] [\-F] [-M] [\-f] [\-T nthreads] relabel
8db498
 
8db498
 .B fixfiles
8db498
-.I [\-v] [\-F] { check | restore | verify } dir/file ...
8db498
+.I [\-v] [\-F] [\-T nthreads] { check | restore | verify } dir/file ...
8db498
 
8db498
 .B fixfiles
8db498
-.I [\-v] [\-F] [\-B | \-N time ] { check | restore | verify }
8db498
+.I [\-v] [\-F] [\-B | \-N time ] [\-T nthreads] { check | restore | verify }
8db498
 
8db498
 .B fixfiles 
8db498
-.I [\-v] [\-F] \-R rpmpackagename[,rpmpackagename...] { check | restore | verify }
8db498
+.I [\-v] [\-F] [\-T nthreads] \-R rpmpackagename[,rpmpackagename...] { check | restore | verify }
8db498
 
8db498
 .B fixfiles
8db498
-.I [\-v] [\-F] \-C PREVIOUS_FILECONTEXT  { check | restore | verify }
8db498
+.I [\-v] [\-F] [\-T nthreads] \-C PREVIOUS_FILECONTEXT  { check | restore | verify }
8db498
 
8db498
 .B fixfiles
8db498
-.I [-F] [-M] [-B] onboot
8db498
+.I [-F] [-M] [-B] [\-T nthreads] onboot
8db498
 
8db498
 .ad
8db498
 
8db498
@@ -76,6 +76,11 @@ Bind mount filesystems before relabeling them, this allows fixing the context of
8db498
 .B -v
8db498
 Modify verbosity from progress to verbose. (Run restorecon with \-v instead of \-p)
8db498
 
8db498
+.TP
8db498
+.B \-T nthreads
8db498
+Use parallel relabeling, see
8db498
+.B setfiles(8)
8db498
+
8db498
 .SH "ARGUMENTS"
8db498
 One of:
8db498
 .TP 
8db498
-- 
8db498
2.34.1
8db498