kernel_optimize_test/drivers
Nicholas Bellinger 7c2bf6e925 [SCSI] target: Fix top-level configfs_subsystem default_group shutdown breakage
This patch fixes two bugs uncovered during testing with
slub_debug=FPUZ during module_exit() -> target_core_exit_configfs()
with release of configfs subsystem consumer default groups, namely how
this should be working with
fs/configfs/dir.c:configfs_unregister_subsystem() release logic for
struct config_group->default_group.

The first issue involves configfs_unregister_subsystem() expecting to
walk+drain the top-level subsys->su_group.default_groups directly in
unlink_group(), and not directly from the configfs subsystem consumer
for the top level struct config_group->default_groups.  This patch
drops the walk+drain of subsys->su_group.default_groups from TCM
configfs subsystem consumer code, and moves the top-level
->default_groups kfree() after configfs_unregister_subsystem() has
been called.

The second issue involves calling
core_alua_free_lu_gp(se_global->default_lu_gp) to release the
default_lu_gp->lu_gp_group before configfs_unregister_subsystem() has
been called.  This patches also moves the core_alua_free_lu_gp() call
to release default_lu_group->lu_gp_group after the subsys has been
unregistered.

Finally, this patch explictly clears the
[lu_gp,alua,hba]_cg->default_groups pointers after kfree() to ensure
that no stale memory is picked up from child struct
config_group->default_group[] while configfs_unregister_subsystem() is
called.

Reported-by: Fubo Chen <fubo.chen@gmail.com>
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2011-02-12 11:39:14 -06:00
..
accessibility
acpi
amba
ata
atm
auxdisplay
base
block nbd: remove module-level ioctl mutex 2011-02-11 16:12:20 -08:00
bluetooth
cdrom cdrom: support devices that have check_events but not media_changed 2011-02-09 14:22:37 +01:00
char Merge branch 'for-james' of git://tpmdd.git.sourceforge.net/gitroot/tpmdd/tpmdd into for-linus 2011-02-11 17:34:47 +11:00
clk
clocksource
connector
cpufreq
cpuidle
crypto
dca
dio
dma
edac amd64_edac: Fix DIMMs per DCTs output 2011-02-10 14:41:49 +01:00
eisa
firewire
firmware
gpio drivers/gpio/pca953x.c: add a mutex to fix race condition 2011-02-11 16:12:20 -08:00
gpu
hid
hwmon hwmon: (emc1403) Fix I2C address range 2011-02-09 13:45:52 -08:00
i2c
ide
idle
ieee802154
infiniband
input arm/ixp4xx: Rename FREQ macro to avoid collisions 2011-02-06 16:49:48 +01:00
isdn isdn: hysdn: Kill (partially buggy) CVS regision log reporting. 2011-02-09 13:56:53 -08:00
leds
lguest
macintosh
mca
md FIX: md: process hangs at wait_barrier after 0->10 takeover 2011-02-08 11:49:02 +11:00
media
memstick
message
mfd
misc
mmc
mtd
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2011-02-10 12:05:09 -08:00
nfc
nubus
of
oprofile
parisc
parport
pci pci: use security_capable() when checking capablities during config space read 2011-02-11 17:58:11 +11:00
pcmcia
platform
pnp
power
pps
ps3
rapidio
regulator
rtc drivers/rtc/rtc-proc.c: add module_put on error path in rtc_proc_open() 2011-02-11 16:12:20 -08:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2011-02-04 13:20:01 -08:00
sbus
scsi [SCSI] scsi_debug: Fix 32-bit overflow in do_device_access causing memory corruption 2011-02-12 11:21:56 -06:00
sfi
sh
sn
spi
ssb Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2011-02-08 12:03:54 -08:00
staging Merge branch 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 2011-02-10 12:19:23 -08:00
target [SCSI] target: Fix top-level configfs_subsystem default_group shutdown breakage 2011-02-12 11:39:14 -06:00
tc
telephony
thermal
tty virtio: console: Update Copyright 2011-02-09 08:19:55 +10:30
uio
usb USB: cdc-acm: Adding second ACM channel support for Nokia N8 2011-02-04 12:38:14 -08:00
uwb
vhost
video
virtio
vlynq
w1 drivers/w1/masters/omap_hdq.c: add missing clk_put 2011-02-11 16:12:20 -08:00
watchdog
xen
zorro
Kconfig
Makefile