linux-uconsole/drivers
Kiyoshi Ueda d1a2ec482c dm ioctl: release _hash_lock between devices in remove_all
commit 98f332855e upstream.

This patch changes dm_hash_remove_all() to release _hash_lock when
removing a device.  After removing the device, dm_hash_remove_all()
takes _hash_lock and searches the hash from scratch again.

This patch is a preparation for the next patch, which changes device
deletion code to wait for md reference to be 0.  Without this patch,
the wait in the next patch may cause AB-BA deadlock:
  CPU0                                CPU1
  -----------------------------------------------------------------------
  dm_hash_remove_all()
    down_write(_hash_lock)
                                      table_status()
                                        md = find_device()
                                               dm_get(md)
                                                 <increment md->holders>
                                        dm_get_live_or_inactive_table()
                                          dm_get_inactive_table()
                                            down_write(_hash_lock)
    <in the md deletion code>
      <wait for md->holders to be 0>

Signed-off-by: Kiyoshi Ueda <k-ueda@ct.jp.nec.com>
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-08-26 16:41:44 -07:00
..
accessibility
acpi ACPI: Fix regression where _PPC is not read at boot even when ignore_ppc=0 2010-08-13 13:20:17 -07:00
amba
ata ata_piix: fix locking around SIDPR access 2010-08-13 13:19:30 -07:00
atm solos-pci: Fix race condition in tasklet RX handling 2010-08-13 13:19:34 -07:00
auxdisplay
base firmware_class: fix memory leak - free allocated pages 2010-08-02 10:21:25 -07:00
block loop: Update mtime when writing using aops 2010-08-13 13:20:23 -07:00
bluetooth Bluetooth: Added support for controller shipped with iMac i5 2010-08-13 13:19:47 -07:00
cdrom
char nvram: Fix write beyond end condition; prove to gcc copy is safe 2010-08-13 13:19:31 -07:00
clocksource clocksource: sh_cmt: compute mult and shift before registration 2010-07-05 11:11:02 -07:00
connector connector: Delete buggy notification code. 2010-02-09 04:50:59 -08:00
cpufreq revert "[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)" 2010-08-02 10:21:25 -07:00
cpuidle cpuidle: Fix incorrect optimization 2010-05-12 14:57:16 -07:00
crypto crypto: padlock-sha - Add import/export support 2010-02-23 07:37:54 -08:00
dca
dio
dma ioat: fix infinite timeout checking in ioat2_quiesce 2010-02-23 07:37:49 -08:00
edac amd64_edac: Correct scrub rate setting 2010-08-10 10:20:38 -07:00
eisa
firewire firewire: core: check for 1394a compliant IRM, fix inaccessibility of Sony camcorder 2010-07-05 11:11:04 -07:00
firmware DMI: allow omitting ident strings in DMI tables 2010-01-28 15:01:52 -08:00
gpio gpiolib: Actually set output state in wm831x_gpio_direction_output() 2010-03-15 08:49:57 -07:00
gpu drm/i915/edp: Flush the write before waiting for PLLs 2010-08-26 16:41:42 -07:00
hid HID: Add the GYR4101US USB ID to hid-gyration 2010-07-05 11:10:33 -07:00
hwmon hwmon: (pc87360) Fix device resource declaration 2010-08-26 16:41:40 -07:00
i2c i2c: Fix probing of FSC hardware monitoring chips 2010-05-12 14:57:04 -07:00
ide ide-cd: Do not access completed requests in the irq handler 2010-08-13 13:19:36 -07:00
idle
ieee1394
ieee802154 ieee802154: dont leak skbs in ieee802154_fake_xmit() 2009-11-19 13:16:21 -08:00
infiniband IPoIB: Fix world-writable child interface control sysfs attributes 2010-08-02 10:20:54 -07:00
input Input: twl40300-keypad - fix handling of "all ground" rows 2010-08-02 10:20:55 -07:00
isdn gigaset: prune use of tty_buffer_request_room 2010-04-01 15:58:24 -07:00
leds leds-gpio: fix default state handling on OF platforms 2010-04-01 15:58:53 -07:00
lguest lguest: fix bug in setting guest GDT entry 2010-01-06 15:05:19 -08:00
macintosh macintosh/therm_adt746x: Fix sysfs attributes lifetime 2010-03-15 08:49:46 -07:00
mca
md dm ioctl: release _hash_lock between devices in remove_all 2010-08-26 16:41:44 -07:00
media V4L/DVB (13830): uvcvideo: add another YUYV format GUID for iSight cameras 2010-08-02 10:21:30 -07:00
memstick memstick: fix hangs on unexpected device removal in mspro_blk 2010-08-26 16:41:32 -07:00
message mptspi: Fix for incorrect data underrun errata 2010-04-26 07:41:36 -07:00
mfd mfd: WM835x GPIO direction register is not locked 2010-01-22 15:18:18 -08:00
misc SCSI: enclosure: fix error path - actually return ERR_PTR() on error 2010-08-10 10:20:44 -07:00
mmc sdhci-s3c: add missing remove function 2010-08-02 10:20:53 -07:00
mtd pxa3xx: fix ns2cycle equation 2010-08-26 16:41:42 -07:00
net ath5k: disable ASPM L0s for all cards 2010-08-26 16:41:41 -07:00
nubus
of
oprofile oprofile: remove double ring buffering 2010-07-05 11:10:27 -07:00
parisc PARISC: led.c - fix potential stack overflow in led_proc_write() 2010-08-10 10:20:37 -07:00
parport
pci PCI: disable MSI on VIA K8M800 2010-08-13 13:19:34 -07:00
pcmcia PCI/cardbus: Add a fixup hook and fix powerpc 2010-01-22 15:18:26 -08:00
platform eeepc-laptop: check wireless hotplug events 2010-08-02 10:21:29 -07:00
pnp
power
pps pps: events reporting fix up 2009-11-12 07:26:01 -08:00
ps3
rapidio
regulator regulator: Fix display of null constraints for regulators 2010-02-23 07:37:49 -08:00
rtc rtc: fix ds1388 time corruption 2010-08-02 10:20:53 -07:00
s390 nohz: Introduce arch_needs_cpu 2010-08-13 13:20:13 -07:00
sbus
scsi ibmvfc: Reduce error recovery timeout 2010-08-13 13:20:24 -07:00
serial serial: cpm_uart: implement the cpm_uart_early_write() function for console poll 2010-08-02 10:20:52 -07:00
sfi
sh
sn
spi SPI: spi_txx9: Fix bit rate calculation 2009-12-02 23:58:32 +00:00
ssb ssb: Handle alternate SSPROM location 2010-08-10 10:20:51 -07:00
staging Staging: panel: Prevent double-calling of parport_release - fix oops. 2010-08-13 13:19:33 -07:00
tc
telephony
thermal acpi: thermal: Add EOL to the trip_point_N_type strings 2009-11-05 17:33:24 -05:00
uio uio: pm_runtime_disable is needed if failed 2009-11-13 11:36:00 +09:00
usb USB: fix thread-unsafe anchor utiliy routines 2010-08-13 13:19:46 -07:00
uwb
video drivers/video/w100fb.c: ignore void return value / fix build failure 2010-08-13 13:19:35 -07:00
virtio virtio-pci: disable msi at startup 2010-08-02 10:20:42 -07:00
vlynq
w1 w1: w1 temp: fix negative termperature calculation 2010-05-12 14:57:00 -07:00
watchdog WATCHDOG: iTCO_wdt: TCO Watchdog patch for additional Intel Cougar Point DeviceIDs 2010-04-26 07:41:18 -07:00
xen xen: Do not suspend IPI IRQs. 2010-08-13 13:19:51 -07:00
zorro
Kconfig
Makefile virtio: initialize earlier 2010-05-12 14:57:15 -07:00