linux/drivers/block
Gerald Britton e9ca75b535 cciss: Fix pci_driver.shutdown while device is still active
Fix an Oops in the cciss driver caused by system shutdown while a filesystem
on a cciss device is still active.  The cciss_remove_one function only
properly removes the device if the device has been cleanly released by its
users, which is not the case when the pci_driver.shutdown method is called.

This patch adds a new cciss_shutdown function to better match the pattern
used by various SCSI drivers: deactivate device interrupts and flush caches.
It also alters the cciss_remove_one function to match and readds the
__devexit annotation that was removed when cciss_remove_one was serving as
the pci_driver.shutdown method.

Signed-off-by: Gerald Britton <gbritton@alum.mit.edu>
Acked-by: Mike Miller <mike.miller@hp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-18 21:03:49 -07:00
..
aoe [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
paride paride drivers: initialize spinlocks 2007-04-24 08:23:08 -07:00
acsi_slm.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
acsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
amiflop.c mm: remove destroy_dirty_buffers from invalidate_bdev() 2007-05-07 12:12:55 -07:00
ataflop.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
cciss_cmd.h [PATCH] cciss: add support for 1024 logical volumes 2006-12-07 08:39:30 -08:00
cciss_scsi.c cciss: include scsi/scsi.h unconditionally 2007-05-08 11:15:10 -07:00
cciss_scsi.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cciss.c cciss: Fix pci_driver.shutdown while device is still active 2007-05-18 21:03:49 -07:00
cciss.h [PATCH] cciss: add support for 1024 logical volumes 2006-12-07 08:39:30 -08:00
cpqarray.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
cpqarray.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cryptoloop.c [BLOCK] cryptoloop: Use block ciphers where applicable 2006-09-21 11:45:53 +10:00
DAC960.c [PATCH] mark struct file_operations const 3 2007-02-12 09:48:45 -08:00
DAC960.h [PATCH] drivers/block/DAC960: convert 'boolean' to 'bool' 2007-02-11 11:18:06 -08:00
floppy.c floppy: handle device_create_file() failure while init 2007-05-08 11:15:02 -07:00
ida_cmd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ida_ioctl.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig [S390] Kconfig: use common Kconfig files for s390. 2007-05-10 15:46:08 +02:00
loop.c fix deadlock in loop.c 2007-05-13 09:44:05 -07:00
Makefile [PATCH] remove the broken BLK_DEV_SWIM_IOP driver 2006-12-13 09:05:53 -08:00
nbd.c nbd: check the return value of sysfs_create_file 2007-05-09 12:30:49 -07:00
pktcdvd.c packet: fix error handling 2007-04-25 13:50:55 -07:00
ps2esdi.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
rd.c Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
smart1,2.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
swim3.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
sx8.c WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
ub.c ub: Bind to first endpoint, not to last 2007-04-27 13:28:34 -07:00
umem.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
viodasd.c [POWERPC] iSeries: fix viodasd init 2006-12-20 16:37:47 +11:00
xd.c [PATCH] Use linux/io.h instead of asm/io.h 2006-10-11 11:14:23 -07:00
xd.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
z2ram.c [PATCH] z2_init() in non-modular case 2006-10-11 11:17:07 -07:00