Whamcloud - gitweb
LU-12672 tests: Correctly determine mdccli in recovery-small test 66
[fs/lustre-release.git] / lustre / scripts / lustre_rmmod
index 792f193..53c8ae2 100755 (executable)
@@ -31,14 +31,30 @@ modules="$@"
 # To maintain backwards compatibility, ldiskfs and libcfs must be
 # unloaded if no parameters are given, or if only the ldiskfs parameter
 # is given. It's ugly, but is needed to emulate the prior functionality
-if [ -z "$modules" ]; then
-       modules="ldiskfs libcfs"
-elif [ "$modules" = "ldiskfs" ]; then
-       modules="ldiskfs libcfs"
+if [ -z "$modules" ] || [ "$modules" = "ldiskfs" ]; then
+       modules="ptlrpc lnet_selftest ldiskfs libcfs"
+fi
+
+if [ -f /sys/kernel/debug/kmemleak ] ; then
+       cat /proc/modules >/tmp/kmemleak-modules-list.txt
+       echo scan > /sys/kernel/debug/kmemleak
+       cat /sys/kernel/debug/kmemleak > /tmp/kmemleak-before-unload.txt
+       test -s /tmp/kmemleak-before-unload.txt && logger -t leak-pre -f /tmp/kmemleak-before-unload.txt
+       rm /tmp/kmemleak-before-unload.txt
+       # Clear everything here so that only new leaks show up
+       # after module unload
+       echo clear > /sys/kernel/debug/kmemleak
 fi
 
 for mod in $modules; do
        unload_dep_modules_inclusive $mod || exit 1
 done
 
+if [ -f /sys/kernel/debug/kmemleak ] ; then
+       echo scan > /sys/kernel/debug/kmemleak
+       cat /sys/kernel/debug/kmemleak > /tmp/kmemleak-after-unload.txt
+       test -s /tmp/kmemleak-after-unload.txt && logger -t leak-mods -f /tmp/kmemleak-modules-list.txt && logger -t leak-post -f /tmp/kmemleak-after-unload.txt
+       rm -f /tmp/kmemleak-after-unload.txt /tmp/kmemleak-modules-list.txt
+fi
+
 exit 0