OpenCloudOS-Kernel/drivers/scsi
Martin K. Petersen c98a0eb0e9 [SCSI] sd: Logical Block Provisioning update
SBC3r26 contains many changes to the Logical Block Provisioning
interfaces (formerly known as Thin Provisioning ditto). This patch
implements support for both the old and new schemes using the same
heuristic as before (whether the LBP VPD page is present).

The new code also allows the provisioning mode (i.e. choice of command)
to be overridden on a per-device basis via sysfs. Two additional modes
are supported in this version:

 - WRITE SAME(10) with the UNMAP bit set

 - WRITE SAME(10) without the UNMAP bit set. This allows us to support
   devices that predate the TP/LBP enhancements in SBC3 and which work
   by way zero-detection

Switching between modes has been consolidated in a helper function that
also updates the block layer topology according to the limitations of
the chosen command.

I experimented with trying WRITE SAME(16) if UNMAP fails, WRITE SAME(10)
if WRITE SAME(16) fails, etc. but found several devices that got
cranky. So for now we'll disable discard if one of the commands
fail. The user still has the option of selecting a different mode in
sysfs.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2011-03-14 18:37:34 -05:00
..
aacraid Merge branch 'master' into for-next 2010-12-22 18:57:02 +01:00
aic7xxx SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aic7xxx_old tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
aic94xx drivers: scsi: fix typo in comment 2010-11-03 10:05:51 -04:00
arcmsr [SCSI] remove flush_scheduled_work() usages 2011-02-12 10:31:02 -06:00
arm SCSI: arm fas216: fix missing ';' 2010-11-23 22:26:23 +00:00
be2iscsi [SCSI] be2iscsi: fix null ptr ref in conn get param 2011-02-24 12:41:26 -05:00
bfa Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-01-13 10:05:56 -08:00
bnx2fc [SCSI] bnx2fc: Broadcom FCoE offload driver 2011-02-28 18:40:27 -06:00
bnx2i [SCSI] bnx2i: fix null ptr ref in conn get param 2011-02-24 12:41:20 -05:00
cxgbi [SCSI] cxgbi: convert to use iscsi_conn_get_addr_param 2011-02-24 12:41:15 -05:00
device_handler [SCSI] scsi_dh_rdac : Adding MODULE VERSION for rdac device handler 2011-02-12 14:14:11 -06:00
dpt
fcoe [SCSI] fcoe: fix broken fcoe interface reset 2011-02-28 18:34:18 -06:00
fnic [SCSI] fnic: Bumping up fnic version from 1.4.0.145 to 1.5.0.1. 2011-02-12 10:59:26 -06:00
ibmvscsi [SCSI] ibmvfc: Improve ibmvfc_async_desc memory layout 2010-12-21 12:24:49 -06:00
libfc [SCSI] fcoe, libfc: initialize EM anchors list and then update npiv EMs 2011-02-28 18:31:53 -06:00
libsas [SCSI] libsas: fix loopback topology bug during discovery 2011-02-28 11:40:34 -06:00
lpfc [SCSI] lpfc: block target when port queueing limit is hit 2011-02-28 11:21:53 -06:00
megaraid [SCSI] megaraid_sas: Version and Changelog update 2011-02-28 12:05:07 -06:00
mpt2sas [SCSI] remove flush_scheduled_work() usages 2011-02-12 10:31:02 -06:00
mvsas [SCSI] Unify SAM_ and SAM_STAT_ macros 2010-07-28 09:07:49 -05:00
osd [SCSI] libosd: osd_req_read_sg, optimize the single entry case 2011-01-24 12:06:31 -06:00
pcmcia SCSI host lock push-down 2010-11-16 13:33:23 -08:00
pm8001 [SCSI] pm8001: simplify workqueue usage 2011-02-12 10:31:03 -06:00
qla2xxx [SCSI] qla2xxx: Update version number to 8.03.07.00 2011-02-25 13:01:18 -05:00
qla4xxx [SCSI] qla4xxx: Update driver version to 5.02.00-k5 2010-12-21 12:24:44 -06:00
sym53c8xx_2 Merge branch 'master' into for-next 2010-12-22 18:57:02 +01:00
.gitignore
3w-9xxx.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
3w-9xxx.h [SCSI] 3w-xxxx, 3w-9xxx: force 60 second timeout 2010-04-11 09:23:25 -05:00
3w-sas.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
3w-sas.h [SCSI] 3w-sas: Add new driver for LSI 3ware 9750 2009-12-04 12:00:51 -06:00
3w-xxxx.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
3w-xxxx.h [SCSI] 3w-xxxx, 3w-9xxx: force 60 second timeout 2010-04-11 09:23:25 -05:00
53c700.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
53c700.h
53c700.scr
53c700_d.h_shipped
BusLogic.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
BusLogic.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
FlashPoint.c [SCSI] FlashPoint: fix off by one tests 2010-01-18 10:48:14 -06:00
Kconfig [SCSI] bnx2fc: Broadcom FCoE offload driver 2011-02-28 18:40:27 -06:00
Makefile [SCSI] bnx2fc: Broadcom FCoE offload driver 2011-02-28 18:40:27 -06:00
NCR53c406a.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
NCR5380.c [SCSI] remove flush_scheduled_work() usages 2011-02-12 10:31:02 -06:00
NCR5380.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
NCR_D700.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
NCR_D700.h
NCR_Q720.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
NCR_Q720.h
a100u2w.c Merge branch 'master' into for-next 2010-12-22 18:57:02 +01:00
a100u2w.h
a2091.c m68k/scsi: a2091 - Do not use legacy Scsi_Host.base 2010-05-26 19:51:08 +02:00
a2091.h m68k/scsi: a2091 - Kill a2091_scsiregs typedef 2010-05-26 19:51:07 +02:00
a3000.c m68k/scsi: a3000 - Do not use legacy Scsi_Host.base 2010-05-26 19:51:08 +02:00
a3000.h m68k/scsi: a3000 - Kill a3000_scsiregs typedef 2010-05-26 19:51:07 +02:00
a4000t.c m68k: amiga - A4000T SCSI platform device conversion 2010-05-26 19:51:09 +02:00
advansys.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha152x.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha152x.h
aha1542.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha1542.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha1740.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha1740.h
aic7xxx_old.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
atari_NCR5380.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
atari_scsi.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
atari_scsi.h
atp870u.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
atp870u.h
bvme6000_scsi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ch.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
constants.c [SCSI] Fix warning: zero-length gnu_printf format string 2010-09-02 17:15:31 -03:00
dc395x.c Merge branch 'master' into for-next 2010-12-22 18:57:02 +01:00
dc395x.h
dmx3191d.c tree-wide: fix misspelling of "definition" in comments 2009-12-04 23:41:47 +01:00
dpt_i2o.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
dpti.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
dtc.c
dtc.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
eata.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
eata_generic.h
eata_pio.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
eata_pio.h
esp_scsi.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
esp_scsi.h
fd_mcs.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
fdomain.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
fdomain.h
g_NCR5380.c g_NCR5380: fix broken MMIO compilation 2010-08-11 08:59:00 -07:00
g_NCR5380.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
g_NCR5380_mmio.c
gdth.c [SCSI] gdth: Add missing call to gdth_ioctl_free 2010-12-31 09:50:09 -06:00
gdth.h [SCSI] gdth: Convert to use regular kernel types. 2010-01-18 10:48:16 -06:00
gdth_ioctl.h [SCSI] gdth: Convert to use regular kernel types. 2010-01-18 10:48:16 -06:00
gdth_proc.c [SCSI] gdth: Add missing call to gdth_ioctl_free 2010-12-31 09:50:09 -06:00
gdth_proc.h [SCSI] gdth: Convert to use regular kernel types. 2010-01-18 10:48:16 -06:00
gvp11.c m68k/scsi: gvp11 - Do not use legacy Scsi_Host.base 2010-05-26 19:51:08 +02:00
gvp11.h m68k: amiga - GVP Series II SCSI zorro_driver conversion 2010-05-26 19:51:08 +02:00
hosts.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2010-10-22 19:36:42 -07:00
hpsa.c [SCSI] hpsa: fix incorrect PCI IDs and add two new ones (2nd try) 2011-03-14 18:34:58 -05:00
hpsa.h [SCSI] hpsa: make hpsa.hpsa_simple_mode=1 module parameter actually work 2011-02-18 12:32:30 -06:00
hpsa_cmd.h [SCSI] hpsa: Inform controller we are using 32-bit tags. 2011-02-18 12:33:52 -06:00
hptiop.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
hptiop.h [SCSI] hptiop: Add RR44xx adapter support 2009-10-02 09:45:22 -05:00
ibmmca.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
imm.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
imm.h
in2000.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
in2000.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
initio.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
initio.h
ipr.c [SCSI] ipr: Fix a race on multiple configuration changes 2011-02-18 12:29:15 -06:00
ipr.h [SCSI] ipr: fix mailbox register definition and add a delay before reading 2010-12-21 12:23:55 -06:00
ips.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ips.h
iscsi_boot_sysfs.c [SCSI] iscsi boot: mv iscsi_boot_sysfs to drivers/scsi 2010-08-06 10:45:07 -05:00
iscsi_tcp.c [SCSI] iscsi_tcp: use iscsi_conn_get_addr_param libiscsi function 2011-02-24 12:41:10 -05:00
iscsi_tcp.h [SCSI] iscsi_tcp: use iscsi_conn_get_addr_param libiscsi function 2011-02-24 12:41:10 -05:00
jazz_esp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
lasi700.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
libiscsi.c [SCSI] libiscsi: add helper to convert addr to string 2011-02-24 12:41:08 -05:00
libiscsi_tcp.c [SCSI] iscsi_tcp: change & to && 2010-04-11 14:03:59 -05:00
libsrp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mac53c94.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
mac53c94.h
mac_esp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mac_scsi.c
mac_scsi.h
megaraid.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
megaraid.h Merge branch 'master' into for-next 2010-12-22 18:57:02 +01:00
mesh.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
mesh.h
mvme16x_scsi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mvme147.c m68k/scsi: mvme147 - Kill obsolete HOSTS_C logic 2010-05-26 19:51:07 +02:00
mvme147.h [SCSI] mvme147: Reindentation 2010-05-02 15:55:03 -04:00
ncr53c8xx.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ncr53c8xx.h
nsp32.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
nsp32.h
nsp32_debug.c
nsp32_io.h
osst.c scsi: autoconvert trivial BKL users to private mutex 2010-09-15 21:00:45 +02:00
osst.h
osst_detect.h
osst_options.h
pas16.c
pas16.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
pmcraid.c [SCSI] remove flush_scheduled_work() usages 2011-02-12 10:31:02 -06:00
pmcraid.h [SCSI] pmcraid: disable msix and expand device config entry 2010-12-09 09:41:15 -06:00
ppa.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ppa.h
ps3rom.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qla1280.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qla1280.h
qlogicfas.c
qlogicfas408.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qlogicfas408.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qlogicpti.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qlogicpti.h of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
raid_class.c [SCSI] raid_attrs: fix dependency problems 2010-03-03 21:17:06 +05:30
script_asm.pl
scsi.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
scsi.h
scsi_debug.c [SCSI] scsi_debug: set resid to indicate no data-in when medium error 2010-12-22 23:26:49 -06:00
scsi_devinfo.c [SCSI] Add scsi_dev_info_list_del_keyed() 2011-01-24 12:01:07 -06:00
scsi_error.c [SCSI] Add detailed SCSI I/O errors 2011-02-12 10:33:08 -06:00
scsi_ioctl.c [SCSI] add scsi target reset support to scsi ioctl 2009-12-04 12:01:33 -06:00
scsi_lib.c [SCSI] sd: Logical Block Provisioning update 2011-03-14 18:37:34 -05:00
scsi_lib_dma.c [SCSI] scsi_lib_dma: fix bug with dma maps on nested scsi objects 2009-12-04 12:01:30 -06:00
scsi_logging.h
scsi_module.c
scsi_netlink.c tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
scsi_pm.c [SCSI] implement runtime Power Management 2010-07-28 09:07:50 -05:00
scsi_priv.h [SCSI] scsi_dh: Use scsi_devinfo functions to do matching of device_handler tables. 2011-01-24 12:02:09 -06:00
scsi_proc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
scsi_sas_internal.h [SCSI] scsi_transport_sas: add support for transport layer retries (TLR) 2010-02-08 17:15:19 -06:00
scsi_scan.c driver core: remove CONFIG_SYSFS_DEPRECATED_V2 but keep it for block devices 2010-10-22 10:16:43 -07:00
scsi_sysctl.c sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08:00
scsi_sysfs.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-01-13 10:05:56 -08:00
scsi_tgt_if.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
scsi_tgt_lib.c [SCSI] tgt: fix warning 2010-08-11 00:55:42 -04:00
scsi_tgt_priv.h
scsi_trace.c [SCSI] scsi_trace: Enhance SCSI command tracing 2010-04-30 12:52:08 -05:00
scsi_transport_api.h
scsi_transport_fc.c [SCSI] fc class: add fc host dev loss sysfs file 2010-10-07 17:09:44 -05:00
scsi_transport_fc_internal.h
scsi_transport_iscsi.c [SCSI] iscsi class: add callout to get iscsi_endpoint values 2011-02-24 12:41:12 -05:00
scsi_transport_sas.c [SCSI] scsi_transport_sas: add support for transport layer retries (TLR) 2010-02-08 17:15:19 -06:00
scsi_transport_spi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
scsi_transport_srp.c
scsi_transport_srp_internal.h
scsi_typedefs.h
scsi_wait_scan.c
scsicam.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sd.c [SCSI] sd: Logical Block Provisioning update 2011-03-14 18:37:34 -05:00
sd.h [SCSI] sd: Logical Block Provisioning update 2011-03-14 18:37:34 -05:00
sd_dif.c block: Make the integrity mapped property a bio flag 2010-10-15 15:49:20 +02:00
ses.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sg.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
sgiwd93.c platform-drivers: move probe to .devinit.text in drivers/scsi 2010-03-07 17:04:50 -08:00
sim710.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sni_53c710.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sr.c [SCSI] sd,sr: kill compat SDEV_MEDIA_CHANGE event 2011-01-14 09:17:35 -06:00
sr.h sr: implement sr_check_events() 2010-12-16 17:53:39 +01:00
sr_ioctl.c scsi: replace sr_test_unit_ready() with scsi_test_unit_ready() 2010-12-16 17:53:39 +01:00
sr_vendor.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
st.c [SCSI] st: Increase success probability in driver buffer allocation 2010-12-22 23:26:50 -06:00
st.h [SCSI] st: fix mdata->page_order handling 2009-12-10 08:54:13 -06:00
st_options.h
stex.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
sun3_NCR5380.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
sun3_scsi.c block: remove wrappers for request type/flags 2010-08-07 18:17:56 +02:00
sun3_scsi.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
sun3_scsi_vme.c block: remove wrappers for request type/flags 2010-08-07 18:17:56 +02:00
sun3x_esp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sun_esp.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
sym53c416.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
sym53c416.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
t128.c
t128.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
tmscsim.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
tmscsim.h
u14-34f.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ultrastor.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ultrastor.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
vmw_pvscsi.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
vmw_pvscsi.h [SCSI] vmw_pvscsi: SCSI driver for VMware's virtual HBA. 2009-12-04 12:00:49 -06:00
wd33c93.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
wd33c93.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
wd7000.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
zalon.c [SCSI] zalon: fix oops on attach failure 2009-06-25 11:37:23 -05:00
zorro7xx.c m68k: amiga - Zorro bus modalias support 2010-05-17 21:37:41 +02:00