linux/drivers
Eric Wheeler c2f87b5d70 bcache: fix race of writeback thread starting before complete initialization
[ Upstream commit 07cc6ef8ed ]

The bch_writeback_thread might BUG_ON in read_dirty() if
dc->sb==BDEV_STATE_DIRTY and bch_sectors_dirty_init has not yet completed
its related initialization.  This patch downs the dc->writeback_lock until
after initialization is complete, thus preventing bch_writeback_thread
from proceeding prematurely.

See this thread:
  http://thread.gmane.org/gmane.linux.kernel.bcache.devel/3453

Signed-off-by: Eric Wheeler <bcache@linux.ewheeler.net>
Tested-by: Marc MERLIN <marc@merlins.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2016-04-18 08:49:25 -04:00
..
accessibility printk: move braille console support into separate braille.[ch] files 2013-07-31 14:41:03 -07:00
acpi x86, irq: Keep balance of IOAPIC pin reference count 2016-04-18 08:49:18 -04:00
amba PM / Domains: Move dev_pm_domain_attach|detach() to pm_domain.h 2014-09-30 01:16:44 +02:00
ata Adding Intel Lewisburg device IDs for SATA 2016-03-07 21:29:57 -05:00
atm solos-pci: fix error return code 2014-11-23 14:29:44 -05:00
auxdisplay auxdisplay: ks0108: fix refcount 2015-10-27 22:14:50 -04:00
base mm: check if section present during memory block registering 2015-10-27 22:14:54 -04:00
bcma bcma: add another PCI ID of device with BCM43228 2014-10-23 14:02:06 -04:00
block mtip32xx: Handle FTL rebuild failure state during device initialization 2016-04-18 08:49:23 -04:00
bluetooth Bluetooth: btusb: Add a new AR3012 ID 04ca:3014 2016-04-18 08:49:19 -04:00
bus bus: arm-ccn: Fix node->XP config conversion 2015-07-03 23:02:13 -04:00
cdrom block,scsi: fixup blk_get_request dead queue scenarios 2014-08-28 10:03:46 -06:00
char hwmon: (dell-smm) Blacklist Dell Studio XPS 8100 2015-08-27 13:25:30 -04:00
clk clk: rockchip: Add pclk_peri to critical clocks on RK3066/RK3188 2016-04-18 08:49:15 -04:00
clocksource clocksource: exynos_mct: Avoid blocking calls in the cpu hotplug notifier 2015-07-05 10:12:52 -04:00
connector connector: bump skb->users before callback invocation 2016-02-15 15:42:42 -05:00
cpufreq intel_pstate: Fix overflow in busy_scaled due to long delay 2015-10-27 22:14:30 -04:00
cpuidle cpuidle: remove state_count field from struct cpuidle_device 2015-04-24 17:13:56 -04:00
crypto crypto: ccp - memset request context to zero during import 2016-04-18 08:49:19 -04:00
dca dca: convert to idr_alloc() 2013-02-27 19:10:15 -08:00
devfreq PM / devfreq: exynos: Enable building exynos PPMU as module 2014-09-29 20:22:36 +09:00
dio m68k: don't export static inline functions 2009-12-06 11:18:28 +01:00
dma dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer 2016-03-04 10:18:42 -05:00
dma-buf reservation: Remove shadowing local variable 'ret' 2015-03-23 21:02:50 -04:00
edac EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr() 2016-04-12 09:09:50 -04:00
eisa Revert "EISA: Initialize device before its resources" 2014-01-17 14:57:29 -07:00
extcon extcon: gpio: Fix code cleanup 2014-09-22 16:48:47 +09:00
firewire firewire: ohci: fix JMicron JMB38x IT context discovery 2016-01-21 11:23:28 -05:00
firmware efi: Add pstore variables to the deletion whitelist 2016-04-12 17:06:28 -04:00
fmc Merge 3.14-rc5 into char-misc-next 2014-03-02 19:53:09 -08:00
gpio gpio: crystalcove: set IRQCHIP_SKIP_SET_WAKE for the irqchip 2015-07-03 23:02:23 -04:00
gpu Revert "drm/radeon: call hpd_irq_event on resume" 2016-04-13 20:44:39 -04:00
hid HID: multitouch: fix input mode switching on some Elan panels 2016-04-12 12:10:58 -04:00
hsi HSI changes for the v3.17 series 2014-08-06 20:06:14 -07:00
hv Drivers: hv: vmbus: Don't wait after requesting offers 2015-05-17 19:12:43 -04:00
hwmon hwmon: (ads1015) Handle negative conversion values correctly 2016-03-07 21:30:06 -05:00
hwspinlock hwspinlock: enable OMAP build for AM33xx, AM43xx & DRA7xx 2014-07-29 11:46:28 +03:00
i2c i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348 2015-11-13 13:18:58 -05:00
ide Merge branch 'for-3.18/drivers' of git://git.kernel.dk/linux-block 2014-10-18 12:12:45 -07:00
idle intel_idle: support additional Broadwell model 2015-08-27 13:26:06 -04:00
iio iio: pressure: mpl115: fix temperature offset sign 2016-04-12 17:06:24 -04:00
infiniband IB/srpt: Simplify srpt_handle_tsk_mgmt() 2016-04-18 08:49:20 -04:00
input Input: elantech - mark protocols v2 and v3 as semi-mt 2016-02-09 22:56:36 -05:00
iommu iommu/amd: Apply workaround for ATS write permission check 2016-03-11 09:45:21 -05:00
ipack ipoctal: clear break interrupt as soon as it occurs 2014-09-23 23:26:42 -07:00
irqchip irqchip/omap-intc: Add support for spurious irq handling 2016-04-12 09:07:31 -04:00
isdn ppp, slip: Validate VJ compression slot parameters completely 2016-02-15 15:42:45 -05:00
leds leds / PM: fix hibernation on arm when gpio-led used with CPU led trigger 2015-07-03 23:02:15 -04:00
lguest x86: Clean up cr4 manipulation 2015-06-28 13:39:27 -04:00
macintosh windfarm: decrement client count when unregistering 2015-10-27 22:13:02 -04:00
mailbox Merge branch 'mailbox-for-linus' of git://git.linaro.org/landing-teams/working/fujitsu/integration 2014-10-21 11:21:19 -07:00
mcb mcb: Add support for shared PCI IRQs 2014-05-27 17:38:11 -07:00
md bcache: fix race of writeback thread starting before complete initialization 2016-04-18 08:49:25 -04:00
media [media] bttv: Width must be a multiple of 16 when capturing planar formats 2016-04-18 08:49:20 -04:00
memory AT91 reset, poweroff and ram drivers 2014-08-25 15:35:26 +02:00
memstick memstick: mspro_block: add missing curly braces 2015-05-17 19:12:28 -04:00
message mptfusion: prevent some memory corruption 2015-12-03 10:04:59 -05:00
mfd mfd: wm5110: Add register patch for rev E and above 2015-12-03 10:04:38 -05:00
misc cxl: Fix unbalanced pci_dev_get in cxl_probe 2015-10-27 09:33:08 -04:00
mmc mmc: sdhci: fix data timeout (part 2) 2016-04-18 08:49:20 -04:00
mtd mtd: onenand: fix deadlock in onenand_block_markbad 2016-04-18 08:49:18 -04:00
net net: irda: Fix use-after-free in irtty_open() 2016-04-12 09:10:30 -04:00
nfc NFC: st21nfcb: remove st21nfcb_nci_i2c_disable 2015-07-03 23:02:25 -04:00
ntb ntb: Adding split BAR support for Haswell platforms 2014-10-17 07:08:51 -04:00
nubus kernel/printk: use symbolic defines for console loglevels 2014-06-04 16:54:17 -07:00
of of: alloc anywhere from memblock if range not specified 2016-04-18 08:49:23 -04:00
oprofile drivers/oprofile: Replace __get_cpu_var uses for address calculation 2014-08-26 13:45:46 -04:00
parisc Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-13 16:23:15 +02:00
parport parport: Add support for the WCH382 2S/1P multi-IO card 2016-03-02 15:19:08 -05:00
pci PCI: Disable IO/MEM decoding for devices with non-compliant BARs 2016-04-18 08:49:19 -04:00
pcmcia Disable write buffering on Toshiba ToPIC95 2015-07-03 23:02:29 -04:00
phy phy: twl4030-usb: Fix unbalanced pm_runtime_enable on module reload 2016-03-04 10:18:39 -05:00
pinctrl pinctrl: mvebu: armada-38x: fix incorrect total number of GPIOs 2015-07-03 23:02:27 -04:00
platform intel_scu_ipcutil: underflow in scu_reg_access() 2016-03-02 15:18:53 -05:00
pnp PNP: replace strnicmp with strncasecmp 2014-10-14 02:18:25 +02:00
power power: bq24190_charger: suppress build warning 2015-11-15 12:51:48 -05:00
powercap powercap / RAPL: change domain detection message 2014-09-03 01:29:00 +02:00
pps drivers/pps/clients/pps-gpio.c: remove redundant of_match_ptr 2013-11-13 12:09:35 +09:00
ps3 ps3-vuart: don't use PREPARE_WORK 2014-03-07 10:24:48 -05:00
ptp PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
pwm pwm: Changes for v3.18-rc1 2014-10-21 08:17:43 -07:00
rapidio PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
ras trace, RAS: Add eMCA trace event interface 2014-06-25 13:26:47 -07:00
regulator regulator: core: fix constraints output buffer 2015-07-03 23:02:25 -04:00
remoteproc remoteproc: da8xx: don't select CMA on no-MMU 2014-06-17 17:09:36 +02:00
reset reset: sunxi: fix spinlock initialization 2015-01-27 08:29:41 -08:00
rpmsg A small pull request consisting of: 2013-05-07 14:02:00 -07:00
rtc drivers/rtc/rtc-s3c.c: add .needs_src_clk to s3c6410 RTC data 2015-03-28 09:59:44 -04:00
s390 s390/dasd: fix refcount for PAV reassignment 2016-03-04 10:18:40 -05:00
sbus Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2014-08-05 18:57:18 -07:00
scsi aacraid: Fix memory leak in aac_fib_map_free 2016-04-18 08:49:17 -04:00
sfi SFI / ACPI: Fix warnings reported during builds with W=1 2013-12-07 01:24:33 +01:00
sh drivers: sh: Leave disabling of unused PM domains to genpd 2014-09-09 00:46:13 +02:00
sn Drivers: misc: remove __dev* attributes. 2013-01-03 15:57:16 -08:00
soc soc: versatile: Add terminating entry for realview_soc_of_match 2014-10-28 22:05:07 +01:00
spi spi: spi-pxa2xx: Check status register to determine if SSSR_TINT is disabled 2015-10-27 22:13:18 -04:00
spmi spmi: Remove duplicate inclusion of module.h 2014-07-10 15:22:13 -07:00
ssb SSB: fix Kconfig dependencies 2015-05-17 19:12:34 -04:00
staging staging: comedi: ni_tiocmd: change mistaken use of start_src for start_arg 2016-04-12 09:10:36 -04:00
target target: Drop incorrect ABORT_TASK put for completed commands 2016-03-22 11:11:11 -04:00
tc TC: Handle device_register() errors. 2014-06-26 10:48:23 +01:00
thermal Thermal: do thermal zone update after a cooling device registered 2016-02-09 22:55:43 -05:00
thunderbolt thunderbolt: Clear hops before overwriting 2014-08-26 14:54:48 -07:00
tty pty: make sure super_block is still valid in final /dev/tty close 2016-03-02 15:19:16 -05:00
uio uio: Export definition of struct uio_device 2014-10-02 21:35:54 -07:00
usb usb: hub: fix a typo in hub_port_init() leading to wrong logic 2016-04-18 08:49:24 -04:00
uwb uwb: add an ASIE sysfs attribute to uwb_rc devices 2014-09-23 22:05:26 -07:00
vfio vfio: fix ioctl error handling 2016-03-11 09:45:22 -05:00
vhost target: Remove first argument of target_{get,put}_sess_cmd() 2016-03-02 15:18:56 -05:00
video fbdev: select versatile helpers for the integrator 2015-10-27 22:13:55 -04:00
virt drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
virtio virtio-balloon: do not call blocking ops when !TASK_RUNNING 2015-04-16 20:11:27 -04:00
vlynq drivers/vlynq/vlynq.c: fix another resource size off by 1 error 2014-01-23 16:36:55 -08:00
vme vme: bridges: use pci_zalloc_consistent 2014-08-08 15:57:30 -07:00
w1 w1_therm reference count family data 2015-07-03 23:02:19 -04:00
watchdog watchdog: rc32434_wdt: fix ioctl error handling 2016-04-18 08:49:21 -04:00
xen xen/pciback: Don't allow MSI-X ops if PCI_COMMAND_MEMORY is not set. 2016-03-07 21:15:15 -05:00
zorro zorro: Use ARRAY_SIZE 2014-07-11 10:38:02 +02:00
Kconfig soc: ti: add Keystone Navigator QMSS driver 2014-09-24 09:49:14 -04:00
Makefile Driver core patches for 3.17-rc1 2014-08-04 18:34:04 -07:00