Revision 0efc4976e3da40b09c592b21f722022d8f12a16b authored by Bob Peterson on 12 March 2021, 13:47:47 UTC, committed by Andreas Gruenbacher on 12 March 2021, 14:52:48 UTC
Patch fe3e397668775 ("gfs2: Rework the log space allocation logic")
changed gfs2_log_flush to reserve a set of journal blocks in case no
transaction is active.  However, gfs2_log_flush also gets called in
cases where we don't have an active journal, for example, for spectator
mounts.  In that case, trying to reserve blocks would sleep forever, but
we want gfs2_log_flush to be a no-op instead.

Fixes: fe3e397668775 ("gfs2: Rework the log space allocation logic")
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
1 parent d5bf630
Raw File
nsdeps
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Linux kernel symbol namespace import generator
#
# This script requires a minimum spatch version.
SPATCH_REQ_VERSION="1.0.4"

DIR="$(dirname $(readlink -f $0))/.."
SPATCH="`which ${SPATCH:=spatch}`"
if [ ! -x "$SPATCH" ]; then
	echo 'spatch is part of the Coccinelle project and is available at http://coccinelle.lip6.fr/'
	exit 1
fi

SPATCH_VERSION=$($SPATCH --version | head -1 | awk '{print $3}')

if ! { echo "$SPATCH_REQ_VERSION"; echo "$SPATCH_VERSION"; } | sort -CV ; then
	echo "spatch needs to be version $SPATCH_REQ_VERSION or higher"
	exit 1
fi

if [ "$KBUILD_EXTMOD" ]; then
	src_prefix=
else
	src_prefix=$srctree/
fi

generate_deps_for_ns() {
	$SPATCH --very-quiet --in-place --sp-file \
		$srctree/scripts/coccinelle/misc/add_namespace.cocci -D nsdeps -D ns=$1 $2
}

generate_deps() {
	local mod=${1%.ko:}
	shift
	local namespaces="$*"
	local mod_source_files="`cat $mod.mod | sed -n 1p                      \
					      | sed -e 's/\.o/\.c/g'           \
					      | sed "s|[^ ]* *|${src_prefix}&|g"`"
	for ns in $namespaces; do
		echo "Adding namespace $ns to module $mod.ko."
		generate_deps_for_ns $ns "$mod_source_files"
		# sort the imports
		for source_file in $mod_source_files; do
			sed '/MODULE_IMPORT_NS/Q' $source_file > ${source_file}.tmp
			offset=$(wc -l ${source_file}.tmp | awk '{print $1;}')
			cat $source_file | grep MODULE_IMPORT_NS | LANG=C sort -u >> ${source_file}.tmp
			tail -n +$((offset +1)) ${source_file} | grep -v MODULE_IMPORT_NS >> ${source_file}.tmp
			if ! diff -q ${source_file} ${source_file}.tmp; then
				mv ${source_file}.tmp ${source_file}
			else
				rm ${source_file}.tmp
			fi
		done
	done
}

while read line
do
	generate_deps $line
done < $MODULES_NSDEPS
back to top