linux/drivers
Christoph Hellwig c15227de13 block: use normal I/O path for discard requests
prepare_discard_fn() was being called in a place where memory allocation
was effectively impossible.  This makes it inappropriate for all but
the most trivial translations of Linux's DISCARD operation to the block
command set.  Additionally adding a payload there makes the ownership
of the bio backing unclear as it's now allocated by the device driver
and not the submitter as usual.

It is replaced with QUEUE_FLAG_DISCARD which is used to indicate whether
the queue supports discard operations or not.  blkdev_issue_discard now
allocates a one-page, sector-length payload which is the right thing
for the common ATA and SCSI implementations.

The mtd implementation of prepare_discard_fn() is replaced with simply
checking for the request being a discard.

Largely based on a previous patch from Matthew Wilcox <matthew@wil.cx>
which did the prepare_discard_fn but not the different payload allocation
yet.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-10-01 21:19:30 +02:00
..
accessibility
acpi ACPI: kill "unused variable ‘i’" warning 2009-09-27 11:58:36 -07:00
amba
ata
atm
auxdisplay
base
block cciss: fix build when !PROC_FS 2009-10-01 21:15:45 +02:00
bluetooth
cdrom sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
char tty: Fix regressions caused by commit b50989dc 2009-09-27 13:35:16 -07:00
clocksource
connector
cpufreq
cpuidle
crypto
dca
dio
dma
edac edac: core: remove completion-wait for complete with rcu_barrier 2009-09-24 07:21:05 -07:00
eisa
firewire
firmware
gpio
gpu const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
hid
hwmon
i2c ACPI: i2c-scmi: don't use acpi_device_uid() 2009-09-26 01:42:07 -04:00
ide
idle
ieee1394 const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
ieee802154
infiniband const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
input input: fix build failures caused by Kconfig Winbond WPCD376I Consumer IR hardware driver Kconfig entry 2009-09-24 07:20:56 -07:00
isdn
leds Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds 2009-09-26 10:50:47 -07:00
lguest
macintosh Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds 2009-09-26 10:50:47 -07:00
mca
md
media const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
memstick memstick: move dev_dbg 2009-09-24 07:21:05 -07:00
message
mfd
misc const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
mmc Merge branch 'origin' into for-linus 2009-09-24 21:22:33 +01:00
mtd block: use normal I/O path for discard requests 2009-10-01 21:19:30 +02:00
net headers: kref.h redux 2009-09-26 10:17:19 -07:00
nubus
of
oprofile
parisc
parport sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
pci ACPICA: fixup after acpi_get_object_info() change 2009-09-25 14:24:22 -04:00
pcmcia Merge branch 'origin' into for-linus 2009-09-24 21:22:33 +01:00
platform thinkpad-acpi: fix CONFIG_THINKPAD_ACPI_HOTKEY_POLL build problem 2009-09-27 02:13:06 -04:00
pnp ACPI: remove acpi_device.flags.hardware_id 2009-09-25 15:09:48 -04:00
power
pps
ps3
rapidio
regulator
rtc Merge branch 'origin' into for-linus 2009-09-24 21:22:33 +01:00
s390 headers: utsname.h redux 2009-09-23 18:13:10 -07:00
sbus
scsi const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
serial Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-09-24 17:22:31 -07:00
sfi
sh
sn
spi Merge branch 'origin' into for-linus 2009-09-24 21:22:33 +01:00
ssb
staging block: use normal I/O path for discard requests 2009-10-01 21:19:30 +02:00
tc
telephony
thermal
uio const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
usb tty: Fix regressions caused by commit b50989dc 2009-09-27 13:35:16 -07:00
uwb
video const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
virtio
vlynq drivers/vlynq/vlynq.c: fix resource size off by 1 error 2009-09-24 07:21:05 -07:00
w1
watchdog [WATCHDOG] Add support for the Avionic Design Xanthos watchdog timer. 2009-09-25 08:38:16 +00:00
xen
zorro
Kconfig
Makefile