OpenCloudOS-Kernel/drivers/mtd
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
..
chips mtd: jedec_probe: add PSD4256G6V id 2009-09-23 00:07:00 -07:00
devices Merge git://git.infradead.org/mtd-2.6 2009-09-23 10:07:49 -07:00
lpddr [MTD] [LPDDR] qinfo_probe depends on lpddr 2009-01-11 10:42:32 +00:00
maps Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2009-09-24 09:01:44 -07:00
nand Merge git://git.infradead.org/mtd-2.6 2009-09-23 10:07:49 -07:00
onenand mtd: onenand: make onenand/generic.c more generic 2009-09-19 11:07:50 -07:00
tests mtd: tests: fix read buffer overflows 2009-09-04 09:40:17 +01:00
ubi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
Kconfig Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2009-09-24 09:01:44 -07:00
Makefile NOMMU: Present backing device capabilities for MTD chardevs 2009-03-24 09:00:19 +00:00
afs.c mtd: afs: fix build warning 2009-09-04 09:38:14 +01:00
ar7part.c [MTD] mtdpart: Make all partition parsers return allocated array 2009-03-20 18:55:17 +00:00
cmdlinepart.c mtd: cmdlineparts: Use 64-bit format when printing a debug message. 2009-06-25 08:18:12 +01:00
ftl.c trivial: mtd: add __init/__exit macros to init/exitfunctions 2009-09-21 15:14:53 +02:00
inftlcore.c mtd: inftl: fix fold chain block number 2009-09-19 14:17:35 -07:00
inftlmount.c [MTD] we don't need no misc devices 2009-03-20 13:16:26 +00:00
internal.h NOMMU: Present backing device capabilities for MTD chardevs 2009-03-24 09:00:19 +00:00
mtd_blkdevs.c block: use normal I/O path for discard requests 2009-10-01 21:19:30 +02:00
mtdbdi.c NOMMU: Present backing device capabilities for MTD chardevs 2009-03-24 09:00:19 +00:00
mtdblock.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-09-20 05:55:36 -07:00
mtdblock_ro.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
mtdchar.c mtd: Fix pointer handling in compat ioctls to use compat_ptr() 2009-05-29 16:09:08 +01:00
mtdconcat.c mtd: mtdconcat: prevent a read from eraseregions[-1] 2009-09-19 11:18:46 -07:00
mtdcore.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-09-20 05:55:36 -07:00
mtdcore.h [MTD] mtdcore.c: share syms with mtd_blkdev.c 2007-06-28 20:24:50 +01:00
mtdoops.c [MTD] mtdoops: fix a bit of spin lock usage 2009-03-20 18:39:25 +00:00
mtdpart.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-09-20 05:55:36 -07:00
mtdsuper.c Convert obvious places to deactivate_locked_super() 2009-05-09 10:49:40 -04:00
nftlcore.c mtd: nftl: fix offset alignments 2009-09-03 14:59:16 +01:00
nftlmount.c [MTD] update internal API to support 64-bit device size 2008-12-10 13:37:21 +00:00
ofpart.c mtd: ofpart: Check availability of reg property instead of name property 2009-09-19 14:14:48 -07:00
redboot.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-11 14:36:25 +01:00
rfd_ftl.c [MTD] remove private wrapper of endian helpers in rfd_ftl.c 2008-12-10 15:39:09 +00:00
ssfdc.c [MTD] update internal API to support 64-bit device size 2008-12-10 13:37:21 +00:00