Damien Le Moal
b73c67c2cb
dm kcopyd: add sequential write feature
...
When copyying blocks to host-managed zoned block devices, writes must be
sequential. However, dm_kcopyd_copy() does not guarantee this as writes
are issued in the completion order of reads, and reads may complete out
of order despite being issued sequentially.
Fix this by introducing the DM_KCOPYD_WRITE_SEQ feature flag. This can
be specified when calling dm_kcopyd_copy() and should be set
automatically if one of the destinations is a host-managed zoned block
device. For a split job, the master job maintains the write position at
which writes must be issued. This is checked with the pop() function
which is modified to not return any write I/O sub job that is not at the
correct write position.
When DM_KCOPYD_WRITE_SEQ is specified for a job, errors cannot be
ignored and the flag DM_KCOPYD_IGNORE_ERROR is ignored, even if
specified by the user.
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-06-19 11:03:51 -04:00
..
accessibility
acpi
Merge branch 'uuid-types' of bombadil.infradead.org:public_git/uuid into nvme-base
2017-06-13 11:45:14 +02: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
xen-blkfront: remove bio splitting.
2017-06-18 12:40:59 -06:00
bluetooth
Bluetooth: hci_ldisc: Add protocol check to hci_uart_tx_wakeup()
2017-04-30 12:22:14 +02:00
bus
cdrom
block: introduce new block status code type
2017-06-09 09:27:32 -06:00
char
Merge branch 'uuid-types' of bombadil.infradead.org:public_git/uuid into nvme-base
2017-06-13 11:45:14 +02: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
fsi
gpio
gpio: mvebu: fix gpio bank registration when pwm is used
2017-06-09 09:38:27 +02:00
gpu
Merge branch 'uuid-types' of bombadil.infradead.org:public_git/uuid into nvme-base
2017-06-13 11:45:14 +02:00
hid
ACPI: Switch to use generic guid_t in acpi_evaluate_dsm()
2017-06-07 12:20:49 +02: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
block: introduce new block status code type
2017-06-09 09:27:32 -06: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
Merge branch 'uuid-types' of bombadil.infradead.org:public_git/uuid into nvme-base
2017-06-13 11:45:14 +02:00
ipack
irqchip
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-05-21 11:45:26 -07: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/pblk-read: use bio_clone_fast()
2017-06-18 12:40:59 -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
dm kcopyd: add sequential write feature
2017-06-19 11:03:51 -04: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
block: introduce new block status code type
2017-06-09 09:27:32 -06:00
message
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
Merge branch 'uuid-types' of bombadil.infradead.org:public_git/uuid into nvme-base
2017-06-13 11:45:14 +02:00
mtd
Linux 4.12-rc5
2017-06-12 08:30:13 -06:00
net
Merge branch 'uuid-types' of bombadil.infradead.org:public_git/uuid into nvme-base
2017-06-13 11:45:14 +02:00
nfc
ntb
nubus
nvdimm
Merge branch 'uuid-types' of bombadil.infradead.org:public_git/uuid into nvme-base
2017-06-13 11:45:14 +02:00
nvme
nvme: host: unquiesce queue in nvme_kill_queues()
2017-06-18 20:52:58 -06: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
ACPI: Switch to use generic guid_t in acpi_evaluate_dsm()
2017-06-07 12:20:49 +02: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
blk: remove bio_set arg from blk_queue_split()
2017-06-18 12:40:59 -06:00
sbus
block: introduce new block status code type
2017-06-09 09:27:32 -06:00
scsi
blk-mq: use the introduced blk_mq_unquiesce_queue()
2017-06-18 14:20:04 -06: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
blk: replace bioset_create_nobvec() with a flags arg to bioset_create()
2017-06-18 12:40:59 -06:00
tc
tee
Linux 4.12-rc1
2017-05-18 23:54:47 -07:00
thermal
thermal: int340x_thermal: fix compile after the UUID API switch
2017-06-09 16:37:31 +02: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
Merge branch 'uuid-types' of bombadil.infradead.org:public_git/uuid into nvme-base
2017-06-13 11:45:14 +02: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
Merge branch 'uuid-types' of bombadil.infradead.org:public_git/uuid into nvme-base
2017-06-13 11:45:14 +02:00
zorro
Kconfig
Makefile
Merge branch 'tee/initial-merge' into fixes
2017-05-10 21:03:31 +02:00