linux_dsm_epyc7002/drivers/scsi
Martin K. Petersen 7985090aa0 sd: disable discard_zeroes_data for UNMAP
The T10 SBC UNMAP command does not provide any hard guarantees that
blocks will return zeroes on a subsequent READ. This is due to the fact
that the device server is free to silently ignore all or parts of the
request.

The only way to ensure that a block consistently returns zeroes after
being unmapped is to use WRITE SAME with the UNMAP bit set. Should the
device be unable to unmap one or more blocks described by the command it
is required to manually write zeroes to them.

Until now we have preferred UNMAP over the WRITE SAME variants to
accommodate thinly provisioned devices that predated the final SBC-3
spec. This patch changes the heuristic so that we favor WRITE SAME(16)
or (10) over UNMAP if these commands are marked as supported in the
Logical Block Provisioning VPD page.

The patch also disables discard_zeroes_data for devices operating in
UNMAP mode.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2014-11-12 11:19:14 +01:00
..
aacraid scsi: add use_cmd_list flag 2014-09-15 16:01:58 -07:00
aic7xxx treewide: Fix typo in printk 2014-08-26 09:35:54 +02:00
aic94xx [SCSI] libsas: implement > 16 byte CDB support 2013-06-04 11:15:59 -07:00
arcmsr arcmsr: simplify ioctl data read/write 2014-09-25 14:23:40 +02:00
arm scsi: Remove scsi_print_command when calling abort 2014-11-12 11:16:04 +01:00
be2iscsi be2iscsi: check ip buffer before copying 2014-09-30 09:29:55 +02:00
bfa bfa: Use pci_enable_msix_exact() instead of pci_enable_msix() 2014-07-29 08:38:52 -04:00
bnx2fc bnx2fc: fix tgt spinlock locking 2014-11-10 15:25:41 +01:00
bnx2i SCSI for-linus on 20141007 2014-10-07 21:29:18 -04:00
csiostor SCSI for-linus on 20141007 2014-10-07 21:29:18 -04:00
cxgbi cxgb4i: send abort_rpl correctly 2014-11-10 15:25:29 +01:00
device_handler scsi: TUR path is down after adapter gets reset with multipath 2014-11-10 15:23:27 +01:00
dpt
esas2r scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01:00
fcoe 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
fnic SCSI for-linus on 20141007 2014-10-07 21:29:18 -04:00
ibmvscsi ibmvfc: fix little endian issues 2014-07-25 17:16:55 -04:00
isci PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
libfc libfc: Replace rcu_assign_pointer() with RCU_INIT_POINTER() 2014-09-30 09:28:36 +02:00
libsas scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
lpfc lpfc: update lpfc version to driver version 10.4.8000.0 2014-09-16 09:10:14 -07:00
megaraid megaraid_sas: fix bug in handling return value of pci_enable_msix_range() 2014-11-10 15:25:41 +01:00
mpt2sas mpt2sas: fix undefined reference to `__udivdi3' compilation errors 2014-09-22 16:35:45 +02:00
mpt3sas mpt3sas, mpt2sas: fix scsi_add_host error handling problems in _scsih_probe 2014-09-16 09:14:21 -07:00
mvsas Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-08-06 21:03:53 -07:00
osd Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd 2014-10-21 12:53:45 -07:00
pcmcia treewide: Fix typo in printk 2014-08-26 09:35:54 +02:00
pm8001 pm8001: Update nvmd response data to request buffer 2014-09-16 09:09:48 -07:00
qla2xxx Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2014-10-21 13:06:38 -07:00
qla4xxx qla4xxx: fix get_host_stats error propagation 2014-08-01 08:16:39 -04:00
sym53c8xx_2 scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
ufs scsi: remove scsi_show_result() 2014-11-12 11:16:05 +01:00
.gitignore
3w-9xxx.c [SCSI] Disable WRITE SAME for RAID and virtual host adapter drivers 2013-11-29 08:48:39 +04:00
3w-9xxx.h
3w-sas.c scsi: use pci_zalloc_consistent 2014-08-08 15:57:29 -07:00
3w-sas.h
3w-xxxx.c [SCSI] Disable WRITE SAME for RAID and virtual host adapter drivers 2013-11-29 08:48:39 +04:00
3w-xxxx.h 3w-xxxx: fix mis-aligned struct accesses 2014-07-25 17:16:56 -04:00
53c700_d.h_shipped
53c700.c scsi: Remove scsi_print_command when calling abort 2014-11-12 11:16:04 +01:00
53c700.h
53c700.scr
a100u2w.c scsi: use pci_zalloc_consistent 2014-08-08 15:57:29 -07:00
a100u2w.h
a2091.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
a2091.h
a3000.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
a3000.h
a4000t.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
advansys.c scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
aha152x.c aha152x: debug output update and whitespace cleanup 2014-11-12 11:15:57 +01:00
aha152x.h
aha1542.c
aha1542.h
aha1740.c scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01:00
aha1740.h
atari_NCR5380.c scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01:00
atari_scsi.c SCSI for-linus on 20140609 2014-06-09 18:54:06 -07:00
atari_scsi.h scsi/NCR5380: remove unused macro definitions 2014-05-28 12:11:08 +02:00
atp870u.c SCSI: remove unnecessary pci_set_drvdata() 2013-10-14 15:26:04 +02:00
atp870u.h
BusLogic.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
BusLogic.h [SCSI] BusLogic: Port driver to 64-bit. 2013-06-26 18:32:47 -07:00
bvme6000_scsi.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
ch.c scsi: split scsi_nonblockable_ioctl 2014-11-12 11:16:11 +01:00
constants.c scsi: simplify scsi_log_(send|completion) 2014-11-12 11:16:05 +01:00
dc395x.c scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
dc395x.h
dmx3191d.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
dpt_i2o.c scsi: add use_cmd_list flag 2014-09-15 16:01:58 -07:00
dpti.h scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
dtc.c scsi/NCR5380: fix and standardize NDEBUG macros 2014-05-28 12:10:43 +02:00
dtc.h NCR5830: switch to ->show_info() 2013-04-09 14:13:17 -04:00
eata_generic.h
eata_pio.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
eata_pio.h
eata.c eata: remove driver_lock 2014-09-16 09:09:38 -07:00
esp_scsi.c esp_scsi: Fix tag state corruption when autosensing. 2013-08-01 18:08:34 -07:00
esp_scsi.h esp_scsi: Fix tag state corruption when autosensing. 2013-08-01 18:08:34 -07:00
fdomain.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
fdomain.h
FlashPoint.c [SCSI] BusLogic: Port driver to 64-bit. 2013-06-26 18:32:47 -07:00
g_NCR5380_mmio.c
g_NCR5380.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
g_NCR5380.h scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
gdth_ioctl.h
gdth_proc.c gdth: switch to ->show_info() 2013-04-09 14:13:16 -04:00
gdth_proc.h gdth: switch to ->show_info() 2013-04-09 14:13:16 -04:00
gdth.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
gdth.h gdth: switch to ->show_info() 2013-04-09 14:13:16 -04:00
gvp11.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00
gvp11.h
hosts.c scsi: fixup logging messages in scsi_error.c 2014-11-12 11:16:06 +01:00
hpsa_cmd.h hpsa: fix handling of hpsa_volume_offline return value 2014-06-02 09:55:02 +02:00
hpsa.c hpsa: add missing pci_set_master in kdump path 2014-09-25 14:23:41 +02:00
hpsa.h hpsa: fix event filtering to prevent excessive rescans with old firmware 2014-06-02 09:54:59 +02:00
hptiop.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
hptiop.h [SCSI] hptiop: Support HighPoint RR4520/RR4522 HBA 2012-11-27 08:59:43 +04:00
imm.c imm: switch to ->show_info() 2013-04-09 14:13:16 -04:00
imm.h
in2000.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
in2000.h
initio.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
initio.h
ipr.c ipr: don't log error messages when applications issues illegal requests 2014-09-25 14:23:18 +02:00
ipr.h ipr: fix compile failure 2014-09-26 10:07:27 +02:00
ips.c scsi: replace strnicmp with strncasecmp 2014-10-14 02:18:24 +02:00
ips.h ips: switch to ->show_info() 2013-04-09 14:13:27 -04:00
iscsi_boot_sysfs.c [SCSI] iscsi_boot_sysfs: Fix a memory leak in iscsi_boot_destroy_kset() 2014-03-15 10:19:19 -07:00
iscsi_tcp.c iscsi_tcp: export port being used 2014-09-30 09:29:55 +02:00
iscsi_tcp.h net: Fix use after free by removing length arg from sk_data_ready callbacks. 2014-04-11 16:15:36 -04:00
jazz_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
Kconfig Merge branch 'for-3.18/core' of git://git.kernel.dk/linux-block 2014-10-18 11:53:51 -07:00
lasi700.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
libiscsi_tcp.c [SCSI] libiscsi: Reduce locking contention in fast path 2014-03-15 10:19:18 -07:00
libiscsi.c iscsi_tcp: export port being used 2014-09-30 09:29:55 +02:00
mac53c94.c
mac53c94.h
mac_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mac_scsi.c scsi/NCR5380: fix and standardize NDEBUG macros 2014-05-28 12:10:43 +02:00
mac_scsi.h scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
Makefile xen-scsifront: Add Xen PV SCSI frontend driver 2014-09-23 13:36:19 +00:00
megaraid.c scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01:00
megaraid.h [SCSI] megaraid: simplify internal command handling 2014-03-27 08:26:31 -07:00
mesh.c scsi: use pci_zalloc_consistent 2014-08-08 15:57:29 -07:00
mesh.h
mvme16x_scsi.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mvme147.c switch wd33c93 to ->show_info() 2013-04-09 14:13:15 -04:00
mvme147.h
mvumi.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
mvumi.h [SCSI] mvumi: Use PCI_VENDOR_ID_MARVELL_EXT for 0x1b4b 2013-04-15 14:30:44 -06:00
ncr53c8xx.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
ncr53c8xx.h scsi: Remove CONFIG_SCSI_MULTI_LUN 2014-07-17 22:07:35 +02:00
NCR53c406a.c NCR53c406a: don't call free_dma() by default 2014-07-25 17:16:56 -04:00
NCR5380.c scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01:00
NCR5380.h scsi/NCR5380: dprintk macro 2014-05-28 18:14:16 +02:00
NCR_D700.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
NCR_D700.h
NCR_Q720.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
NCR_Q720.h
nsp32_debug.c
nsp32_io.h
nsp32.c SCSI for-linus on 20141007 2014-10-07 21:29:18 -04:00
nsp32.h
osst_detect.h
osst_options.h
osst.c osst: call scsi_set_medium_removal directly 2014-11-12 11:16:12 +01:00
osst.h
pas16.c pas16: don't call free_dma() 2014-07-25 17:16:55 -04:00
pas16.h scsi/NCR5380: remove redundant HOSTS_C macro tests 2014-05-28 12:05:36 +02:00
pmcraid.c pmcraid: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-09-16 09:09:57 -07:00
pmcraid.h
ppa.c ppa: switch to ->show_info() 2013-04-09 14:13:17 -04:00
ppa.h
ps3rom.c scsi: Remove scsi_print_command when calling abort 2014-11-12 11:16:04 +01:00
qla1280.c x86, platforms: Remove SGI Visual Workstation 2014-02-27 08:07:39 -08:00
qla1280.h
qlogicfas408.c
qlogicfas408.h
qlogicfas.c qlogicfas: don't call free_dma() 2014-07-25 17:16:55 -04:00
qlogicpti.c scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi_debug.c scsi: replace strnicmp with strncasecmp 2014-10-14 02:18:24 +02:00
scsi_devinfo.c scsi: do not issue SCSI RSOC command to Promise Vtrak E610f 2014-07-29 18:01:10 -04:00
scsi_error.c scsi: refactor scsi_reset_provider handling 2014-11-12 11:16:10 +01:00
scsi_ioctl.c scsi: return EAGAIN when resetting a device under EH 2014-11-12 11:16:12 +01:00
scsi_lib_dma.c
scsi_lib.c scsi: add support for multiple hardware queues 2014-11-12 11:16:09 +01:00
scsi_logging.h scsi: simplify scsi_log_(send|completion) 2014-11-12 11:16:05 +01:00
scsi_module.c
scsi_netlink.c net: Use netlink_ns_capable to verify the permisions of netlink messages 2014-04-24 13:44:54 -04:00
scsi_pm.c scsi: async sd resume 2014-04-10 15:30:35 -07:00
scsi_priv.h scsi: add support for a blk-mq based I/O path. 2014-07-25 17:16:28 -04:00
scsi_proc.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_sas_internal.h
scsi_scan.c scsi: fix off-by-one LUN check in scsi_scan_host_selected() 2014-11-12 11:15:53 +01:00
scsi_sysctl.c scsi: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
scsi_sysfs.c scsi: balance out autopm get/put calls in scsi_sysfs_add_sdev() 2014-09-15 16:02:05 -07:00
scsi_trace.c tracing: Add trace_seq_buffer_ptr() helper function 2014-07-01 07:13:39 -04:00
scsi_transport_api.h
scsi_transport_fc.c scsi: add defines for new FC port speeds. 2014-07-25 17:16:54 -04:00
scsi_transport_iscsi.c iscsi class: Fix freeing of skb in get host error path 2014-08-04 13:16:14 +02:00
scsi_transport_sas.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_transport_spi.c
scsi_transport_srp.c Main set of InfiniBand/RDMA updates for 3.17 merge window: 2014-08-14 11:09:05 -06:00
scsi_typedefs.h
scsi.c scsi: simplify scsi_log_(send|completion) 2014-11-12 11:16:05 +01:00
scsi.h
scsicam.c scsi: PC partition tables are little endian 2014-11-12 11:15:54 +01:00
sd_dif.c sd: Honor block layer integrity handling flags 2014-09-30 15:17:35 -06:00
sd.c sd: disable discard_zeroes_data for UNMAP 2014-11-12 11:19:14 +01:00
sd.h scsi: introduce sdev_prefix_printk() 2014-11-12 11:15:57 +01:00
ses.c [SCSI] ses: Use vpd information from scsi_device 2014-03-27 08:26:31 -07:00
sg.c scsi: split scsi_nonblockable_ioctl 2014-11-12 11:16:11 +01:00
sgiwd93.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sim710.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sni_53c710.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sr_ioctl.c scsi: repurpose the last argument from print_opcode_name() 2014-11-12 11:16:03 +01:00
sr_vendor.c scsi: Implement sr_printk() 2014-07-17 22:07:39 +02:00
sr.c scsi: split scsi_nonblockable_ioctl 2014-11-12 11:16:11 +01:00
sr.h scsi: introduce sdev_prefix_printk() 2014-11-12 11:15:57 +01:00
st_options.h
st.c st: call scsi_set_medium_removal directly 2014-11-12 11:16:12 +01:00
st.h [SCSI] st: raise device limit 2012-09-14 17:59:29 +01:00
stex.c scsi: Remove scsi_print_command when calling abort 2014-11-12 11:16:04 +01:00
storvsc_drv.c scsi: use sdev as argument for sense code printing 2014-11-12 11:15:58 +01:00
sun3_NCR5380.c scsi: correct return values for .eh_abort_handler implementations 2014-11-12 11:16:08 +01:00
sun3_scsi_vme.c scsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c 2014-05-28 12:16:28 +02:00
sun3_scsi.c scsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c 2014-05-28 12:16:28 +02:00
sun3_scsi.h scsi/NCR5380: reduce depth of sun3_scsi nested includes 2014-05-28 12:11:33 +02:00
sun3x_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sun_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sym53c416.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sym53c416.h
t128.c scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
t128.h scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
tmscsim.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
tmscsim.h [SCSI] tmscsim: Move 'last_reset' into host structure 2013-10-25 11:51:37 +01:00
u14-34f.c scsi: fix u14-34f printk format warnings 2014-08-01 08:18:37 -04:00
ultrastor.c
ultrastor.h
virtio_scsi.c virtio_scsi: drop scan callback 2014-10-15 10:25:14 +10:30
vmw_pvscsi.c vmw_pvscsi: Use pci_enable_msix_exact() instead of pci_enable_msix() 2014-07-29 08:38:53 -04:00
vmw_pvscsi.h PCI: Move PCI_VENDOR_ID_VMWARE to pci_ids.h 2014-09-24 11:52:09 -06:00
wd33c93.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
wd33c93.h switch wd33c93 to ->show_info() 2013-04-09 14:13:15 -04:00
wd7000.c [SCSI] remove deprecated IRQF_DISABLED from SCSI 2014-03-19 15:04:44 -07:00
xen-scsifront.c xen: remove DEFINE_XENBUS_DRIVER() macro 2014-10-06 10:27:57 +01:00
zalon.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
zorro7xx.c zorro: ZTWO_VADDR() should return "void __iomem *" 2013-11-26 11:09:07 +01:00