Linus Torvalds
7b3d9545f9
Revert "scsi: revert "[SCSI] Get rid of scsi_cmnd->done""
...
This reverts commit ac40532ef0 , which gets
us back the original cleanup of 6f5391c283 .
It turns out that the bug that was triggered by that commit was
apparently not actually triggered by that commit at all, and just the
testing conditions had changed enough to make it appear to be due to it.
The real problem seems to have been found by Peter Osterlund:
"pktcdvd sets it [block device size] when opening the /dev/pktcdvd
device, but when the drive is later opened as /dev/scd0, there is
nothing that sets it back. (Btw, 40944 is possible if the disk is a
CDRW that was formatted with "cdrwtool -m 10236".)
The problem is that pktcdvd opens the cd device in non-blocking mode
when pktsetup is run, and doesn't close it again until pktsetup -d is
run. The effect is that if you meanwhile open the cd device,
blkdev.c:do_open() doesn't call bd_set_size() because
bdev->bd_openers is non-zero."
In particular, to repeat the bug (regardless of whether commit
6f5391c283 is applied or not):
" 1. Start with an empty drive.
2. pktsetup 0 /dev/scd0
3. Insert a CD containing an isofs filesystem.
4. mount /dev/pktcdvd/0 /mnt/tmp
5. umount /mnt/tmp
6. Press the eject button.
7. Insert a DVD containing a non-writable filesystem.
8. mount /dev/scd0 /mnt/tmp
9. find /mnt/tmp -type f -print0 | xargs -0 sha1sum >/dev/null
10. If the DVD contains data beyond the physical size of a CD, you
get I/O errors in the terminal, and dmesg reports lots of
"attempt to access beyond end of device" errors."
which in turn is because the nested open after the media change won't
cause the size to be set properly (because the original open still holds
the block device, and we only do the bd_set_size() when we don't have
other people holding the device open).
The proper fix for that is probably to just do something like
bdev->bd_inode->i_size = (loff_t)get_capacity(disk)<<9;
in fs/block_dev.c:do_open() even for the cases where we're not the
original opener (but *not* call bd_set_size(), since that will also
change the block size of the device).
Cc: Peter Osterlund <petero2@telia.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Matthew Wilcox <matthew@wil.cx>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-06 10:17:12 -08:00
..
aacraid
[SCSI] aacraid: fix security weakness
2007-11-11 17:35:48 -06:00
aic7xxx
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
2007-10-23 16:37:29 -07:00
aic7xxx_old
aic94xx
aic94xx_sds: rename FLASH_SIZE
2007-11-14 18:45:44 -08:00
arcmsr
deal with resource allocation bugs in arcmsr
2007-10-29 07:41:33 -07:00
arm
[ARM] Fix an rpc_defconfig regression
2007-10-31 15:21:35 +00:00
dpt
ibmvscsi
[SCSI] ibmvscsi: Prevent IO during partner login
2007-11-03 12:10:36 -05:00
libsas
Use helpers to obtain task pid in printks
2007-10-19 11:53:43 -07:00
lpfc
[SCSI] lpfc : Correct queue tag handling
2007-11-03 12:09:29 -05:00
megaraid
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
pcmcia
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
qla2xxx
[SCSI] qla2xxx: Update version number to 8.02.00-k5.
2007-10-23 15:55:16 -04:00
qla4xxx
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
sym53c8xx_2
[SCSI] sym53c8xx: fix "irq X: nobody cared" regression
2007-12-18 16:04:09 -06:00
.gitignore
3w-9xxx.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
3w-9xxx.h
[SCSI] 3w-9xxx: add support for 9690SA
2007-07-21 08:57:40 -05:00
3w-xxxx.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
3w-xxxx.h
53c700.c
[SCSI] 53c700: Remove printk, which triggers because of low scsi clock on SNI RMs
2007-07-14 19:12:43 -05:00
53c700.h
[SCSI] 53c700: m68k support for the 53c700 SCSI core
2007-06-17 16:15:56 -05:00
53c700.scr
53c700_d.h_shipped
a100u2w.c
[SCSI] add use_sg_chaining option to scsi_host_template
2007-10-16 11:24:32 +02:00
a100u2w.h
[SCSI] a100u2w: Convert into Linux style
2007-06-17 16:09:29 -05:00
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
[SCSI] kmalloc + memset conversion to kzalloc
2007-10-12 14:41:00 -04:00
advansys.c
[SCSI] advansys: Changes to work on parisc
2007-10-12 14:54:13 -04:00
aha152x.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
aha152x.h
[SCSI] aha152x: fix debug mode symbol conflict
2007-08-04 09:11:06 -05:00
aha1542.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
aha1542.h
aha1740.c
[SCSI] add use_sg_chaining option to scsi_host_template
2007-10-16 11:24:32 +02:00
aha1740.h
aic7xxx_old.c
[SCSI] aic7xxx_old: fix accidental logic reversal
2007-10-18 08:40:42 -04:00
atari_dma_emul.c
atari_NCR5380.c
m68k: sg fallout
2007-10-24 08:55:40 +02:00
atari_scsi.c
[SCSI] NCR5380: Fix bugs and canonicalize irq handler usage
2007-11-25 12:19:26 +02:00
atari_scsi.h
m68k: Atari SCSI driver compile fixes
2007-05-04 17:59:05 -07:00
atp870u.c
atp870u.h
blz1230.c
blz2060.c
BusLogic.c
[SCSI] add use_sg_chaining option to scsi_host_template
2007-10-16 11:24:32 +02:00
BusLogic.h
bvme6000_scsi.c
[SCSI] kmalloc + memset conversion to kzalloc
2007-10-12 14:41:00 -04:00
ch.c
[SCSI] ch: kmalloc/memset->kzalloc
2007-05-06 09:33:11 -05:00
constants.c
[SCSI] Fix device not ready printk
2007-10-12 14:51:56 -04:00
cyberstorm.c
cyberstormII.c
dc395x.c
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
dc395x.h
dec_esp.c
dmx3191d.c
dpt_i2o.c
[SCSI] dpt_i2o: driver is only 32 bit so don't set 64 bit DMA mask
2007-12-18 16:04:08 -06:00
dpti.h
revert "dpt_i2o: convert to SCSI hotplug model"
2007-12-10 19:43:54 -08:00
dtc.c
[SCSI] NCR5380: Fix bugs and canonicalize irq handler usage
2007-11-25 12:19:26 +02:00
dtc.h
eata.c
[SCSI] add use_sg_chaining option to scsi_host_template
2007-10-16 11:24:32 +02:00
eata_generic.h
eata_pio.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
eata_pio.h
esp_scsi.c
esp_scsi: fix reset cleanup spinlock recursion
2007-12-10 19:43:55 -08:00
esp_scsi.h
[SCSI] ESP: Revert ESP_BUS_TIMEOUT back down to 250
2007-07-31 10:51:25 -05:00
fastlane.c
fd_mcs.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
fdomain.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
fdomain.h
FlashPoint.c
FlashPoint, use BIT instead of BITW
2007-10-19 11:53:42 -07:00
g_NCR5380.c
[SCSI] NCR5380: Fix bugs and canonicalize irq handler usage
2007-11-25 12:19:26 +02:00
g_NCR5380.h
g_NCR5380_mmio.c
gdth.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
2007-10-23 16:37:29 -07:00
gdth.h
[SCSI] gdth: !use_sg cleanup and use of scsi accessors
2007-10-12 14:56:13 -04:00
gdth_ioctl.h
gdth_proc.c
[SCSI] gdth: Move members from SCp to gdth_cmndinfo, stage 2
2007-10-12 14:56:09 -04:00
gdth_proc.h
[SCSI] gdth: clean up host private data
2007-10-12 14:55:46 -04:00
gvp11.c
gvp11.h
hosts.c
[SCSI] make supported_mode default to initiator.
2007-10-17 21:56:12 -04:00
hptiop.c
[SCSI] hptiop: avoid buffer overflow when returning sense data
2007-10-17 21:56:13 -04:00
hptiop.h
[SCSI] hptiop: adding new firmware interface and more PCI device IDs
2007-10-12 14:46:40 -04:00
ibmmca.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
ide-scsi.c
ide-scsi: add ide_scsi_hex_dump() helper
2007-12-12 23:31:57 +01:00
imm.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
imm.h
in2000.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
in2000.h
initio.c
[SCSI] initio: bugfix for accessors patch
2007-12-18 16:04:15 -06:00
initio.h
[SCSI] initio: Convert into a real Linux driver and update to modern style
2007-05-22 11:08:56 -05:00
ipr.c
SG: Change sg_set_page() to take length and offset argument
2007-10-24 11:20:47 +02:00
ipr.h
[SCSI] ipr: Use PCI-E reset API for new ipr adapter
2007-05-08 11:54:40 -05:00
ips.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
ips.h
[SCSI] ips: Update version information
2007-10-12 14:51:44 -04:00
iscsi_tcp.c
[SCSI] iscsi_tcp: fix potential lockup with write commands
2007-11-14 14:51:58 -06:00
iscsi_tcp.h
[SCSI] iscsi_tcp: fix potential lockup with write commands
2007-11-14 14:51:58 -06:00
jazz_esp.c
[SCSI] esp: use shost_priv
2007-05-31 17:30:04 -04:00
Kconfig
PCI: Add Kconfig option to disable deprecated pci_find_* API
2007-11-05 13:35:17 -08:00
lasi700.c
some kmalloc/memset ->kzalloc (tree wide)
2007-07-19 10:04:50 -07:00
libiscsi.c
[SCSI] iscsi: return data transfer residual for data-out commands
2007-11-14 14:52:16 -06:00
libsrp.c
[SCSI] tgt: convert libsrp and ibmvstgt to use srp_transport
2007-10-12 14:37:57 -04:00
mac53c94.c
[SCSI] add use_sg_chaining option to scsi_host_template
2007-10-16 11:24:32 +02:00
mac53c94.h
mac_esp.c
mac_scsi.c
[SCSI] NCR5380: Fix bugs and canonicalize irq handler usage
2007-11-25 12:19:26 +02:00
mac_scsi.h
Makefile
[SCSI] fc4: remove this and all associated drivers
2007-10-17 21:53:55 -04:00
mca_53c9x.c
megaraid.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
megaraid.h
[SCSI] megaraid: fix warnings when CONFIG_PROC_FS=n
2007-05-08 11:15:08 -05:00
mesh.c
[SCSI] add use_sg_chaining option to scsi_host_template
2007-10-16 11:24:32 +02:00
mesh.h
mvme16x_scsi.c
[SCSI] kmalloc + memset conversion to kzalloc
2007-10-12 14:41:00 -04:00
mvme147.c
mvme147.h
ncr53c8xx.c
[SCSI] Remove ->pid field from scsi_cmnd
2007-10-12 14:51:52 -04:00
ncr53c8xx.h
[SCSI] ncr53c8xx: Call scsi_host_put in release
2007-10-12 14:51:18 -04:00
NCR53C9x.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
NCR53C9x.h
NCR53c406a.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
NCR5380.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
NCR5380.h
[SCSI] NCR5380: Use scsi_eh API for REQUEST_SENSE invocation
2007-10-12 14:55:07 -04:00
NCR_D700.c
[SCSI] kmalloc + memset conversion to kzalloc
2007-10-12 14:41:00 -04:00
NCR_D700.h
NCR_Q720.c
some kmalloc/memset ->kzalloc (tree wide)
2007-07-19 10:04:50 -07:00
NCR_Q720.h
nsp32.c
[SCSI] add use_sg_chaining option to scsi_host_template
2007-10-16 11:24:32 +02:00
nsp32.h
define global BIT macro
2007-10-19 11:53:42 -07:00
nsp32_debug.c
nsp32_io.h
oktagon_esp.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
oktagon_io.S
osst.c
[SCSI] osst: fix if (...) \n #if... cases missing semicolons when false
2007-10-27 14:31:06 -05:00
osst.h
[SCSI] osst: Use mutex instead of semaphore
2007-10-12 14:50:55 -04:00
osst_detect.h
osst_options.h
pas16.c
[SCSI] NCR5380: Fix bugs and canonicalize irq handler usage
2007-11-25 12:19:26 +02:00
pas16.h
ppa.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
ppa.h
ps3rom.c
powerpc: Fix fallout from sg_page() changes
2007-10-23 09:13:14 +02:00
psi240i.c
psi240i.h
psi_chip.h
ql1040_fw.h
ql1280_fw.h
ql12160_fw.h
qla1280.c
[SCSI] qla1280: convert to use the data buffer accessors
2007-11-14 18:25:44 -06:00
qla1280.h
[SCSI] qla1280: eliminate wasted space in request and response ring
2007-10-23 12:35:35 -04:00
qlogicfas.c
[SCSI] add use_sg_chaining option to scsi_host_template
2007-10-16 11:24:32 +02:00
qlogicfas408.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
qlogicfas408.h
qlogicpti.c
qlogicpti: sg chaining support
2007-10-16 11:14:19 +02:00
qlogicpti.h
[SCSI] qlogicpti: Add a slave_configure method
2007-10-12 14:52:38 -04:00
qlogicpti_asm.c
raid_class.c
script_asm.pl
scsi.c
Revert "scsi: revert "[SCSI] Get rid of scsi_cmnd->done""
2008-01-06 10:17:12 -08:00
scsi.h
scsi_debug.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
scsi_debug.h
scsi_devinfo.c
[SCSI] Add QUANTUM XP34301 to the blacklist
2007-10-12 14:39:19 -04:00
scsi_error.c
Revert "scsi: revert "[SCSI] Get rid of scsi_cmnd->done""
2008-01-06 10:17:12 -08:00
scsi_ioctl.c
scsi_lib.c
Revert "scsi: revert "[SCSI] Get rid of scsi_cmnd->done""
2008-01-06 10:17:12 -08:00
scsi_lib_dma.c
[SCSI] don't build scsi_dma_{map,unmap} for !HAS_DMA
2007-07-14 19:28:10 -05:00
scsi_logging.h
scsi_module.c
scsi_netlink.c
[NET]: make netlink user -> kernel interface synchronious
2007-10-10 21:15:29 -07:00
scsi_priv.h
Revert "scsi: revert "[SCSI] Get rid of scsi_cmnd->done""
2008-01-06 10:17:12 -08:00
scsi_proc.c
scsi_sas_internal.h
scsi_scan.c
SCSI: add asynchronous event notification API
2007-11-03 22:23:02 -04:00
scsi_sysctl.c
[SCSI] small cleanups
2007-07-18 11:16:32 -05:00
scsi_sysfs.c
[SCSI] scsi_sysfs: restore prep_fn when ULD is removed
2008-01-02 13:08:00 -06:00
scsi_tgt_if.c
[SCSI] tgt: add I_T nexus support
2007-10-12 14:37:50 -04:00
scsi_tgt_lib.c
scsi: simplify scsi_free_sgtable()
2007-10-16 11:12:37 +02:00
scsi_tgt_priv.h
[SCSI] tgt: add I_T nexus support
2007-10-12 14:37:50 -04:00
scsi_transport_api.h
scsi_transport_fc.c
[SCSI] Fix signness of parameters in scsi module
2007-10-12 14:49:11 -04:00
scsi_transport_fc_internal.h
[SCSI] fc_transport: add target driver support
2007-10-12 14:46:58 -04:00
scsi_transport_iscsi.c
[NET]: make netlink user -> kernel interface synchronious
2007-10-10 21:15:29 -07:00
scsi_transport_sas.c
[SCSI] bsg: make class backlinks
2007-07-21 08:58:23 -05:00
scsi_transport_spi.c
[SCSI] scsi_transport_spi: fix domain validation failure from incorrect width setting
2007-09-22 08:52:12 -05:00
scsi_transport_srp.c
[SCSI] SRP transport: only remove our own entries
2008-01-04 14:15:51 -06:00
scsi_transport_srp_internal.h
[SCSI] scsi_transport_srp: remove tgt dependencies
2007-10-12 14:38:09 -04:00
scsi_typedefs.h
scsi_wait_scan.c
scsicam.c
sd.c
Revert "scsi: revert "[SCSI] Get rid of scsi_cmnd->done""
2008-01-06 10:17:12 -08:00
seagate.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
sg.c
Initialise scatter/gather list in sg driver
2007-10-29 09:18:03 +01:00
sgiwd93.c
Convert SGI IP22 and specific drivers to platform_device.
2007-05-11 17:00:29 +01:00
sim710.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
2007-07-22 11:36:49 -07:00
sni_53c710.c
[SCSI] sni_53c710: Cleanup
2007-07-14 19:12:15 -05:00
sr.c
Revert "scsi: revert "[SCSI] Get rid of scsi_cmnd->done""
2008-01-06 10:17:12 -08:00
sr.h
sr_ioctl.c
sr_vendor.c
st.c
[SCSI] st: fix kernel BUG at include/linux/scatterlist.h:59!
2007-12-18 16:04:13 -06:00
st.h
[SCSI] st: Use mutex instead of semaphore
2007-07-31 10:44:01 -05:00
st_options.h
stex.c
[SCSI] add use_sg_chaining option to scsi_host_template
2007-10-16 11:24:32 +02:00
sun3_NCR5380.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
sun3_scsi.c
[SCSI] NCR5380: Fix bugs and canonicalize irq handler usage
2007-11-25 12:19:26 +02:00
sun3_scsi.h
sun3_scsi_vme.c
[SCSI] NCR5380: Fix bugs and canonicalize irq handler usage
2007-11-25 12:19:26 +02:00
sun3x_esp.c
m68k: sg fallout
2007-10-24 08:55:40 +02:00
sun_esp.c
[SCSI] esp: use shost_priv
2007-05-31 17:30:04 -04:00
sym53c416.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
sym53c416.h
t128.c
[SCSI] NCR5380: Fix bugs and canonicalize irq handler usage
2007-11-25 12:19:26 +02:00
t128.h
tmscsim.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
tmscsim.h
[SCSI] tmscsim: Further clean-up of the driver
2007-07-14 18:56:33 -05:00
u14-34f.c
Fixup u14-34f ENABLE_SG_CHAINING
2007-10-16 11:24:44 +02:00
ultrastor.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
ultrastor.h
wd33c93.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
wd33c93.h
Spelling fix: explicitly
2007-10-19 23:22:55 +02:00
wd7000.c
[SG] Update drivers to use sg helpers
2007-10-22 21:19:53 +02:00
zalon.c
zorro7xx.c
m68k: zorro7xx needs <asm/amigahw.h>
2007-11-29 09:24:52 -08:00