diff options
| -rw-r--r-- | include/linux/blk.h | 41 | ||||
| -rw-r--r-- | include/linux/blkdev.h | 24 | ||||
| -rw-r--r-- | include/linux/elevator.h | 1 | ||||
| -rw-r--r-- | include/linux/genhd.h | 8 |
4 files changed, 34 insertions, 40 deletions
diff --git a/include/linux/blk.h b/include/linux/blk.h index 9e65d6827d30..69afaa429f3b 100644 --- a/include/linux/blk.h +++ b/include/linux/blk.h @@ -1,41 +1,2 @@ -#ifndef _BLK_H -#define _BLK_H - +/* this file is obsolete, please use <linux/blkdev.h> instead */ #include <linux/blkdev.h> -#include <linux/elevator.h> -#include <linux/config.h> -#include <linux/spinlock.h> -#include <linux/compiler.h> - -extern void set_device_ro(struct block_device *bdev, int flag); -extern void set_disk_ro(struct gendisk *disk, int flag); -extern void add_disk_randomness(struct gendisk *disk); -extern void rand_initialize_disk(struct gendisk *disk); - -/* - * end_request() and friends. Must be called with the request queue spinlock - * acquired. All functions called within end_request() _must_be_ atomic. - * - * Several drivers define their own end_request and call - * end_that_request_first() and end_that_request_last() - * for parts of the original function. This prevents - * code duplication in drivers. - */ - -extern int end_that_request_first(struct request *, int, int); -extern int end_that_request_chunk(struct request *, int, int); -extern void end_that_request_last(struct request *); -extern void end_request(struct request *req, int uptodate); -struct request *elv_next_request(request_queue_t *q); - -static inline void blkdev_dequeue_request(struct request *req) -{ - BUG_ON(list_empty(&req->queuelist)); - - list_del_init(&req->queuelist); - - if (req->q) - elv_remove_request(req->q, req); -} - -#endif /* _BLK_H */ diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 3899acc8a4f1..32a8cddd2ca3 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -349,6 +349,30 @@ static inline request_queue_t *bdev_get_queue(struct block_device *bdev) } /* + * end_request() and friends. Must be called with the request queue spinlock + * acquired. All functions called within end_request() _must_be_ atomic. + * + * Several drivers define their own end_request and call + * end_that_request_first() and end_that_request_last() + * for parts of the original function. This prevents + * code duplication in drivers. + */ +extern int end_that_request_first(struct request *, int, int); +extern int end_that_request_chunk(struct request *, int, int); +extern void end_that_request_last(struct request *); +extern void end_request(struct request *req, int uptodate); + +static inline void blkdev_dequeue_request(struct request *req) +{ + BUG_ON(list_empty(&req->queuelist)); + + list_del_init(&req->queuelist); + + if (req->q) + elv_remove_request(req->q, req); +} + +/* * get ready for proper ref counting */ #define blk_put_queue(q) do { } while (0) diff --git a/include/linux/elevator.h b/include/linux/elevator.h index 8a9c22d3b16b..69648f495dc1 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h @@ -54,6 +54,7 @@ extern void elv_merge_requests(request_queue_t *, struct request *, extern void elv_merged_request(request_queue_t *, struct request *); extern void elv_remove_request(request_queue_t *, struct request *); extern int elv_queue_empty(request_queue_t *); +extern struct request *elv_next_request(struct request_queue *q); extern struct request *elv_former_request(request_queue_t *, struct request *); extern struct request *elv_latter_request(request_queue_t *, struct request *); extern int elv_register_queue(struct gendisk *); diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 35e93e35455d..7103121f4c9a 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h @@ -190,6 +190,14 @@ extern void add_disk(struct gendisk *disk); extern void del_gendisk(struct gendisk *gp); extern void unlink_gendisk(struct gendisk *gp); extern struct gendisk *get_gendisk(dev_t dev, int *part); + +extern void set_device_ro(struct block_device *bdev, int flag); +extern void set_disk_ro(struct gendisk *disk, int flag); + +/* drivers/char/random.c */ +extern void add_disk_randomness(struct gendisk *disk); +extern void rand_initialize_disk(struct gendisk *disk); + static inline sector_t get_start_sect(struct block_device *bdev) { return bdev->bd_offset; |
