linux/drivers
Mikulas Patocka 5b8bbc39d5 dm thin: do not send discards to shared blocks
commit 650d2a06b4 upstream.

When process_discard receives a partial discard that doesn't cover a
full block, it sends this discard down to that block. Unfortunately, the
block can be shared and the discard would corrupt the other snapshots
sharing this block.

This patch detects block sharing and ends the discard with success when
sending it to the shared block.

The above change means that if the device supports discard it can't be
guaranteed that a discard request zeroes data. Therefore, we set
ti->discard_zeroes_data_unsupported.

Thin target discard support with this bug arrived in commit
104655fd4d (dm thin: support discards).

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-29 08:04:20 -07:00
..
accessibility
acpi cpufreq / ACPI: Fix not loading acpi-cpufreq driver regression 2012-07-19 08:58:56 -07:00
amba ARM: 7366/3: amba: Remove AMBA level regulator support 2012-04-13 14:04:08 +01:00
ata ata_piix: defer disks to the Hyper-V drivers by default 2012-06-17 11:21:29 -07:00
atm solos-pci: Fix DMA support 2012-06-10 00:36:08 +09:00
auxdisplay
base PM / Sleep: Prevent waiting forever on asynchronous suspend after abort 2012-07-16 09:04:08 -07:00
bcma bcma: add ext PA workaround for BCM4331 and BCM43431 2012-06-17 11:21:26 -07:00
block umem: fix up unplugging 2012-07-16 09:04:08 -07:00
bluetooth Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth 2012-04-27 15:16:43 -04:00
cdrom
char hwrng: atmel-rng - fix data valid check 2012-06-22 11:37:15 -07:00
clk clk: Check parent for NULL in clk_change_rate 2012-07-19 08:58:59 -07:00
clocksource Revert "clocksource: Load the ACPI PM clocksource asynchronously" 2012-04-12 00:05:05 +02:00
connector
cpufreq cpufreq: OMAP: fix build errors: depends on ARCH_OMAP2PLUS 2012-04-13 17:57:40 -07:00
cpuidle Merge branches 'idle-fix' and 'misc' into release 2012-04-06 21:48:59 -04:00
crypto crypto: mv_cesa requires on CRYPTO_HASH to build 2012-05-15 01:10:06 +00:00
dca
devfreq
dio
dma dmaengine: pl330: dont complete descriptor for cyclic dma 2012-07-16 09:04:09 -07:00
edac edac: fix the error about memory type detection on SandyBridge 2012-06-22 11:37:15 -07:00
eisa
firewire Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
firmware efivars: Improve variable validation 2012-05-03 17:19:19 -07:00
gpio gpiolib: wm8994: Pay attention to the value set when enabling as output 2012-07-16 09:04:09 -07:00
gpu drm/i915: rip out the PM_IIR WARN 2012-07-16 09:04:43 -07:00
hid HID: multitouch: Add support for Baanto touchscreen 2012-07-29 08:04:19 -07:00
hsi HSI: hsi_char: Remove max_data_size from sysfs 2012-04-23 14:23:32 +03:00
hv
hwmon hwmon: (it87) Preserve configuration register bits on init 2012-07-19 08:58:55 -07:00
hwspinlock hwspinlock/core: use global ID to register hwspinlocks on multiple devices 2012-07-16 09:04:25 -07:00
i2c i2c: tegra: notify transfer-complete after clearing status. 2012-06-01 15:18:28 +08:00
ide Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
idle simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
ieee802154
infiniband IB/core: Fix mismatch between locked and pinned pages 2012-06-01 15:18:17 +08:00
input Input: xpad - add Andamiro Pump It Up pad 2012-07-19 08:58:58 -07:00
iommu iommu/tegra: smmu: Fix unsleepable memory allocation 2012-07-16 09:03:52 -07:00
isdn isdn/gigaset: improve error handling querying firmware version 2012-06-01 15:18:14 +08:00
leds drivers/leds: correct __devexit annotations 2012-05-10 15:06:44 -07:00
lguest
macintosh Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
mca
md dm thin: do not send discards to shared blocks 2012-07-29 08:04:20 -07:00
media media: dvb-core: Release semaphore on error path dvb_register_device() 2012-07-19 08:58:55 -07:00
memstick
message Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
mfd mfd: Fix build breakage in omap-usb-host.c 2012-05-01 11:55:04 +02:00
misc Merge branch 'akpm' (Andrew's patch-bomb) 2012-04-05 15:30:34 -07:00
mmc mmc: omap_hsmmc: pass IRQF_ONESHOT to request_threaded_irq 2012-06-01 15:18:27 +08:00
mtd mtd: nandsim: don't open code a do_div helper 2012-07-19 08:58:55 -07:00
net bonding: Manage /proc/net/bonding/ entries from the netdev events 2012-07-19 08:58:58 -07:00
nfc
nubus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
of gpio: Fix range check in of_gpio_simple_xlate() 2012-04-10 14:20:56 -06:00
oprofile oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array 2012-07-16 09:04:21 -07:00
parisc parisc: move definition of PAGE0 to asm/page.h 2012-05-10 15:12:08 -07:00
parport
pci PCI: EHCI: fix crash during suspend on ASUS computers 2012-07-16 09:04:39 -07:00
pcmcia Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia 2012-03-29 16:00:48 -07:00
pinctrl pinctrl: implement pinctrl_check_ops 2012-04-11 09:31:02 +02:00
platform intel_ips: blacklist HP ProBook laptops 2012-07-19 08:58:56 -07:00
pnp Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-03-30 16:45:39 -07:00
power Various small bugfixes and enhancements, plus two new drivers: 2012-03-30 16:09:02 -07:00
pps
ps3
ptp ptp_pch: Add missing #include <linux/slab.h> 2012-05-16 14:44:44 -04:00
rapidio
regulator regulator: core: Release regulator-regulator supplies on error 2012-06-01 15:18:15 +08:00
remoteproc remoteproc: fix missing CONFIG_FW_LOADER configurations 2012-07-16 09:04:25 -07:00
rpmsg rpmsg: fix dependency on initialization order 2012-07-19 08:58:57 -07:00
rtc drivers/rtc/rtc-mxc.c: fix irq enabled interrupts warning 2012-07-16 09:04:44 -07:00
s390 qeth: Use blkt defaults for OSA Express 4 2012-04-24 00:33:17 -04:00
sbus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
scsi SCSI: libsas: fix taskfile corruption in sas_ata_qc_fill_rtf 2012-07-16 09:04:37 -07:00
sfi
sh SuperH updates for 3.4 merge window 2012-03-30 00:09:17 -07:00
sn
spi spi/spi-fsl-spi: reference correct pdata in fsl_spi_cs_control 2012-06-01 15:18:25 +08:00
ssb
staging staging:iio:ad7606: Re-add missing scale attribute 2012-07-16 09:04:43 -07:00
target tcm_fc: Fix crash seen with aborts and large reads 2012-07-29 08:04:18 -07:00
tc
thermal
tty xen/hvc: Check HVM_PARAM_CONSOLE_[EVTCHN|PFN] for correctness. 2012-06-22 11:36:54 -07:00
uio
usb xhci: Fix hang on back-to-back Set TR Deq Ptr commands. 2012-07-16 09:04:38 -07:00
uwb uwb: fix error handling 2012-04-18 13:15:51 -07:00
vhost vhost-net: fix handle_rx buffer size 2012-05-11 18:16:57 -04:00
video OMAPDSS: use DSI_FIFO_BUG workaround only for manual update displays 2012-07-16 09:04:27 -07:00
virt
virtio virtio: balloon: let host know of updated balloon size before module removal 2012-05-17 12:14:34 +03:00
vlynq
w1
watchdog hpwdt: Only BYTE reads/writes to WD Timer port 0x72 2012-04-26 14:38:07 +02:00
xen xen: do not map the same GSI twice in PVHVM guests. 2012-06-01 15:18:25 +08:00
zorro
Kconfig Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi 2012-04-02 09:50:40 -07:00
Makefile Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi 2012-04-02 09:50:40 -07:00