Revision 00c10bc13cdb58447d6bb2a003afad7bd60f5a5f authored by Eric W. Biederman on 31 May 2012, 23:26:40 UTC, committed by Linus Torvalds on 01 June 2012, 00:49:32 UTC
Force SIGCHLD handling to SIG_IGN so that signals are not generated and so that the children autoreap. This increases the parallelize and in general the speed of network namespace shutdown. Note self reaping childrean can exist past zap_pid_ns_processess but they will all be reaped before we allow the pid namespace init task with pid == 1 to be reaped. [akpm@linux-foundation.org: checkpatch fixes] Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Pavel Emelyanov <xemul@parallels.com> Cc: Cyrill Gorcunov <gorcunov@openvz.org> Cc: Louis Rilling <louis.rilling@kerlabs.com> Cc: Mike Galbraith <efault@gmx.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 3208450
gfp-translate
#!/bin/bash
# Translate the bits making up a GFP mask
# (c) 2009, Mel Gorman <mel@csn.ul.ie>
# Licensed under the terms of the GNU GPL License version 2
SOURCE=
GFPMASK=none
# Helper function to report failures and exit
die() {
echo ERROR: $@
if [ "$TMPFILE" != "" ]; then
rm -f $TMPFILE
fi
exit -1
}
usage() {
echo "usage: gfp-translate [-h] [ --source DIRECTORY ] gfpmask"
exit 0
}
# Parse command-line arguments
while [ $# -gt 0 ]; do
case $1 in
--source)
SOURCE=$2
shift 2
;;
-h)
usage
;;
--help)
usage
;;
*)
GFPMASK=$1
shift
;;
esac
done
# Guess the kernel source directory if it's not set. Preference is in order of
# o current directory
# o /usr/src/linux
if [ "$SOURCE" = "" ]; then
if [ -r "/usr/src/linux/Makefile" ]; then
SOURCE=/usr/src/linux
fi
if [ -r "`pwd`/Makefile" ]; then
SOURCE=`pwd`
fi
fi
# Confirm that a source directory exists
if [ ! -r "$SOURCE/Makefile" ]; then
die "Could not locate kernel source directory or it is invalid"
fi
# Confirm that a GFP mask has been specified
if [ "$GFPMASK" = "none" ]; then
usage
fi
# Extract GFP flags from the kernel source
TMPFILE=`mktemp -t gfptranslate-XXXXXX` || exit 1
grep -q ___GFP $SOURCE/include/linux/gfp.h
if [ $? -eq 0 ]; then
grep "^#define ___GFP" $SOURCE/include/linux/gfp.h | sed -e 's/u$//' | grep -v GFP_BITS > $TMPFILE
else
grep "^#define __GFP" $SOURCE/include/linux/gfp.h | sed -e 's/(__force gfp_t)//' | sed -e 's/u)/)/' | grep -v GFP_BITS | sed -e 's/)\//) \//' > $TMPFILE
fi
# Parse the flags
IFS="
"
echo Source: $SOURCE
echo Parsing: $GFPMASK
for LINE in `cat $TMPFILE`; do
MASK=`echo $LINE | awk '{print $3}'`
if [ $(($GFPMASK&$MASK)) -ne 0 ]; then
echo $LINE
fi
done
rm -f $TMPFILE
exit 0
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...