NeilBrown
5a85071c2c
md: use a separate bio_set for synchronous IO.
...
md devices allocate a bio_set and use it for two
distinct purposes.
mddev->bio_set is used to clone bios as part of sending
upper level requests down to lower level devices,
and it is also use for synchronous IO such as superblock
and bitmap updates, and for correcting read errors.
This multiple usage can lead to deadlocks. It is likely
that cloned bios might be queued for write and to be
waiting for a metadata update before the write can be permitted.
If the cloning exhausted mddev->bio_set, the metadata update
may not be able to proceed.
This scenario has been seen during heavy testing, with lots of IO and
lots of memory pressure.
Address this by adding a new bio_set specifically for synchronous IO.
All synchronous IO goes directly to the underlying device and is not
queued at the md level, so request using entries from the new
mddev->sync_set will complete in a timely fashion.
Requests that use mddev->bio_set will sometimes need to wait
for synchronous IO, but will no longer risk deadlocking that iO.
Also: small simplification in mddev_put(): there is no need to
wait until the spinlock is released before calling bioset_free().
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
2017-06-21 10:52:36 -07:00
..
accessibility
acpi
IOMMU Fixes for Linux v4.12-rc4
2017-06-09 22:30:55 -07:00
amba
android
ata
libata: fix error checking in in ata_parse_force_one()
2017-05-31 14:26:26 -04:00
atm
auxdisplay
base
Merge branches 'intel_pstate' and 'pm-sleep'
2017-06-09 01:25:16 +02:00
bcma
block
Fix loop device flush before configure v3
2017-06-08 08:04:18 -06:00
bluetooth
Bluetooth: hci_ldisc: Add protocol check to hci_uart_tx_wakeup()
2017-04-30 12:22:14 +02:00
bus
cdrom
char
Improve performance by using a lockless update mechanism suggested by
2017-06-11 12:02:01 -07:00
clk
Sort of on the quieter side this time, which is probably due more
2017-05-10 13:38:18 -07:00
clocksource
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-05-12 10:43:25 -07:00
connector
cpufreq
Merge branches 'intel_pstate' and 'pm-sleep'
2017-06-09 01:25:16 +02:00
cpuidle
Merge branches 'pm-domains', 'pm-cpuidle', 'pm-sleep' and 'powercap'
2017-05-09 23:21:46 +02:00
crypto
virtio: fixes, cleanups, performance
2017-05-10 11:33:08 -07:00
dax
device-dax: fix 'dax' device filesystem inode destruction crash
2017-06-09 08:50:49 -07:00
dca
devfreq
dio
dma
dmaengine: pl330: fix warning in pl330_remove
2017-06-02 11:49:44 +05:30
dma-buf
edac
EDAC, amd64: Fix reporting of Chip Select sizes on Fam17h
2017-05-03 16:27:36 +02:00
eisa
extcon
firewire
firmware
Char/Misc driver fixes for 4.12-rc5
2017-06-11 11:29:15 -07:00
fmc
fpga
fpga fr br: update supported version numbers
2017-04-26 11:38:56 +02:00
fsi
gpio
gpio: mvebu: fix gpio bank registration when pwm is used
2017-06-09 09:38:27 +02:00
gpu
Merge branch 'vmwgfx-fixes-4.12' of git://people.freedesktop.org/~thomash/linux into drm-fixes
2017-06-09 13:12:02 +10:00
hid
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2017-06-02 09:23:56 -07:00
hsi
hv
char/misc patches for 4.12-rc1
2017-05-04 19:15:35 -07:00
hwmon
hwmon: (aspeed-pwm-tacho) make fan/pwm names start with index 1
2017-06-03 03:55:43 -07:00
hwspinlock
hwtracing
drivers/hwtracing/intel_th/msu.c: use set_memory.h header
2017-05-08 17:15:14 -07:00
i2c
i2c: designware: Fix bogus sda_hold_time due to uninitialized vars
2017-05-22 19:22:19 -07:00
ide
ide: don't call memcpy with the same source and destination
2017-05-08 17:36:39 -04:00
idle
x86/intel_idle: add Gemini Lake support
2017-05-01 23:17:37 +02:00
iio
First set of IIO fixes in the 4.12 cycle.
2017-05-22 21:53:09 +02:00
infiniband
RDMA/SA: Fix kernel panic in CMA request handler flow
2017-06-01 17:20:14 -04:00
input
Input: synaptics-rmi4 - register F03 port as pass-through serio
2017-06-09 09:57:19 -07:00
iommu
iommu/of: Ignore all errors except EPROBE_DEFER
2017-05-30 11:31:32 +02:00
ipack
irqchip
Xtensa fixes for v4.12-rc6
2017-06-13 15:09:10 +09:00
isdn
mISDN: Fix a sleep-in-atomic bug
2017-06-01 14:49:47 -04:00
leds
leds: pca955x: Correct I2C Functionality
2017-05-22 21:12:44 +02:00
lguest
lightnvm
lightnvm: fix bad back free on error path
2017-05-04 07:53:04 -06:00
macintosh
DeviceTree for 4.12:
2017-05-05 19:33:07 -07:00
mailbox
mailbox: handle empty message in tx_tick
2017-04-27 16:20:04 +05:30
mcb
md
md: use a separate bio_set for synchronous IO.
2017-06-21 10:52:36 -07:00
media
media fixes for v4.12-rc4
2017-06-06 09:37:44 -07:00
memory
Merge tag 'at91-4.12-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into fixes
2017-06-01 17:07:31 -07:00
memstick
message
scsi: mpt: Move scsi_remove_host() out of mptscsih_remove_host()
2017-04-24 18:21:17 -04:00
mfd
mfd: axp20x: Support AXP803 variant
2017-04-27 11:54:49 +01:00
misc
Char/Misc driver fixes for 4.12-rc5
2017-06-11 11:29:15 -07:00
mmc
This pull request contains fixes to make the WiFi work again for the ARM64
2017-05-26 09:05:35 -07:00
mtd
mtd: nand: make nand_ooblayout_lp_hamming_ops static
2017-05-22 09:42:29 +02:00
net
net: stmmac: fix a broken u32 less than zero check
2017-06-06 16:26:28 -04:00
nfc
ntb
nubus
nvdimm
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
2017-05-12 15:43:10 -07:00
nvme
nvme: relax APST default max latency to 100ms
2017-06-07 11:08:55 +02:00
nvmem
ARM: SoC driver updates
2017-05-09 10:01:15 -07:00
of
iommu/of: Ignore all errors except EPROBE_DEFER
2017-05-30 11:31:32 +02:00
oprofile
parisc
parport
pci
PCI/PM: Add needs_resume flag to avoid suspend complete optimization
2017-05-23 14:18:17 -05:00
pcmcia
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
perf
drivers/perf: arm_pmu_acpi: avoid perf IRQ init when guest PMU is off
2017-05-30 12:40:03 +01:00
phy
phy: qualcomm: phy-qcom-qmp: fix application of sizeof to pointer
2017-06-01 15:03:41 +05:30
pinctrl
pinctrl: sunxi: Fix SPDIF function name for A83T
2017-05-23 11:31:27 +02:00
platform
goldfish_pipe: use GFP_ATOMIC under spin lock
2017-05-25 18:26:11 +02:00
pnp
power
power supply and reset changes for the v4.12 series (part 2)
2017-05-12 12:02:21 -07:00
powercap
PowerCap: Fix an error code in powercap_register_zone()
2017-05-14 13:30:05 +02:00
pps
ps3
ptp
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-05-01 16:15:18 -07:00
pwm
rapidio
char/misc patches for 4.12-rc1
2017-05-04 19:15:35 -07:00
ras
regulator
Merge remote-tracking branch 'regulator/topic/vctrl' into regulator-next
2017-04-30 22:17:44 +09:00
remoteproc
virtio: fixes, cleanups, performance
2017-05-10 11:33:08 -07:00
reset
reset: hi6220: Set module license so that it can be loaded
2017-05-24 10:53:41 +02:00
rpmsg
virtio: fixes, cleanups, performance
2017-05-10 11:33:08 -07:00
rtc
Merge branches 'pm-sleep' and 'powercap'
2017-05-22 20:32:05 +02:00
s390
s390/zcrypt: Fix blocking queue device after unbind/bind.
2017-06-02 14:30:12 +02:00
sbus
scsi
SCSI fixes on 20170610
2017-06-11 11:21:08 -07:00
sfi
sh
sn
soc
ARM: SoC fixes (and a cross-arch dt-include fix)
2017-05-19 13:36:56 -07:00
spi
Merge remote-tracking branches 'spi/topic/ti-qspi' and 'spi/topic/xlp' into spi-next
2017-04-26 15:58:22 +01:00
spmi
ssb
staging
Staging/IIO fixes for 4.12-rc5
2017-06-11 11:25:51 -07:00
target
iscsi-target: Always wait for kthread_should_stop() before kthread exit
2017-05-31 15:12:57 -07:00
tc
tee
Linux 4.12-rc1
2017-05-18 23:54:47 -07:00
thermal
thermal: broadcom: ns-thermal: default on iProc SoCs
2017-05-23 20:09:34 -07:00
thunderbolt
tty
Revert "tty: fix port buffer locking"
2017-06-04 10:23:25 +02:00
uio
uio: fix incorrect memory leak cleanup
2017-05-16 23:06:41 +02:00
usb
usb: fixes for v4.12-rc4
2017-06-03 09:47:16 +09:00
uwb
uwb: fix device quirk on big-endian hosts
2017-05-17 11:27:41 +02:00
vfio
powerpc updates for 4.12 part 1.
2017-05-05 11:36:44 -07:00
vhost
mm: support __GFP_REPEAT in kvmalloc_node for >32kB
2017-05-08 17:15:12 -07:00
video
fbdev changes for v4.12:
2017-05-11 11:12:26 -07:00
virt
drivers/virt/fsl_hypervisor.c: use get_user_pages_unlocked()
2017-05-08 17:15:10 -07:00
virtio
virtio: allow extra context per descriptor
2017-05-02 23:41:43 +03:00
vlynq
vme
w1
watchdog
watchdog: bcm281xx: Fix use of uninitialized spinlock.
2017-05-19 10:42:25 +02:00
xen
xen: fix for 4.12 rc5
2017-06-09 09:59:51 -07:00
zorro
Kconfig
Makefile
Merge branch 'tee/initial-merge' into fixes
2017-05-10 21:03:31 +02:00