diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2010-02-02 11:33:45 +0900 |
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2010-02-02 11:33:45 +0900 |
| commit | 9d3f1881abeae0494a27716b08fcf2d3264bb0fa (patch) | |
| tree | f457dd2d35af29bc831b93865efa47229d0b9bee /include/linux/blkdev.h | |
| parent | b6c58b1d987a5795086c5c2babd8c7367d2fdb8c (diff) | |
| parent | bc10e875d4aeaa93a0d418d8b4346b72f5067ea0 (diff) | |
Merge branch 'sh/stable-updates'
Diffstat (limited to 'include/linux/blkdev.h')
| -rw-r--r-- | include/linux/blkdev.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 9b98173a8184..5c8018977efa 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -938,6 +938,8 @@ extern void blk_queue_io_opt(struct request_queue *q, unsigned int opt); extern void blk_set_default_limits(struct queue_limits *lim); extern int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, sector_t offset); +extern int bdev_stack_limits(struct queue_limits *t, struct block_device *bdev, + sector_t offset); extern void disk_stack_limits(struct gendisk *disk, struct block_device *bdev, sector_t offset); extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b); @@ -1148,8 +1150,11 @@ static inline int queue_discard_alignment(struct request_queue *q) static inline int queue_sector_discard_alignment(struct request_queue *q, sector_t sector) { - return ((sector << 9) - q->limits.discard_alignment) - & (q->limits.discard_granularity - 1); + struct queue_limits *lim = &q->limits; + unsigned int alignment = (sector << 9) & (lim->discard_granularity - 1); + + return (lim->discard_granularity + lim->discard_alignment - alignment) + & (lim->discard_granularity - 1); } static inline unsigned int queue_discard_zeroes_data(struct request_queue *q) |
