diff options
| author | Olof Johansson <olof@lixom.net> | 2012-09-13 09:34:11 +0400 |
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2012-09-13 09:34:11 +0400 |
| commit | 025c95a6826ad8acfe871f33c2fa9208beeb38df (patch) | |
| tree | 220fe156ff60db13bd3a1319f5e20d6b723de5f4 /include/linux/blkdev.h | |
| parent | 0558d7a8ed44e6e53aadb04d2e23145efb2aa8a4 (diff) | |
| parent | 7f744b17140af1a9c8804a1c81c9dae6bb52a7fb (diff) | |
| download | linux-025c95a6826ad8acfe871f33c2fa9208beeb38df.tar.xz | |
Merge branch 'clk' of git://github.com/hzhuang1/linux into next/cleanup
* 'clk' of git://github.com/hzhuang1/linux:
ARM: mmp: remove unused definition in APBC and APMU
ARM: mmp: move mmp2 clock definition to separated file
arm: mmp: move pxa910 clock definition to separated file
arm: mmp: move pxa168 clock definition to separated file
arm: mmp: make private clock definition exclude from common clock
+ Linux 3.6-rc4
Diffstat (limited to 'include/linux/blkdev.h')
| -rw-r--r-- | include/linux/blkdev.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 4e72a9d48232..4a2ab7c85393 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -601,7 +601,7 @@ static inline void blk_clear_rl_full(struct request_list *rl, bool sync) * it already be started by driver. */ #define RQ_NOMERGE_FLAGS \ - (REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA) + (REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA | REQ_DISCARD) #define rq_mergeable(rq) \ (!((rq)->cmd_flags & RQ_NOMERGE_FLAGS) && \ (((rq)->cmd_flags & REQ_DISCARD) || \ @@ -894,6 +894,8 @@ extern void blk_queue_flush_queueable(struct request_queue *q, bool queueable); extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev); extern int blk_rq_map_sg(struct request_queue *, struct request *, struct scatterlist *); +extern int blk_bio_map_sg(struct request_queue *q, struct bio *bio, + struct scatterlist *sglist); extern void blk_dump_rq_flags(struct request *, char *); extern long nr_blockdev_pages(void); @@ -1139,6 +1141,16 @@ static inline int queue_limit_discard_alignment(struct queue_limits *lim, sector & (lim->discard_granularity - 1); } +static inline int bdev_discard_alignment(struct block_device *bdev) +{ + struct request_queue *q = bdev_get_queue(bdev); + + if (bdev != bdev->bd_contains) + return bdev->bd_part->discard_alignment; + + return q->limits.discard_alignment; +} + static inline unsigned int queue_discard_zeroes_data(struct request_queue *q) { if (q->limits.max_discard_sectors && q->limits.discard_zeroes_data == 1) |
