make <linux/blk.h> obsolete
PATCH 1/1 make <linux/blk.h> obsolete
This file was _the_ header for block-device related stuff in earlier Linux versions, but nowdays there's just a few prototypes left that really belong into blkdev.h or genhd.h (and in one case elevator.h).
This patch moves them over and removes everything but including blkdev.h from blk.h Note that blkdev.h gets all the headers that were included in blk.h inmplicitly too. Now we can start removing all references to it an maybe kill it off before 2.6. *sniff*
include/linux/blk.h +1 -40
@@ -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 */
include/linux/blkdev.h +24 -0
@@ -349,6 +349,30 @@ }/* +* 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)
include/linux/elevator.h +1 -0
@@ -54,6 +54,7 @@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 *);
include/linux/genhd.h +8 -0
@@ -190,6 +190,14 @@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;
Quoted 3 lines · Christoph Hellwig
...
+/* this file is obsolete, please use <linux/blkdev.h> instead */
...
#warning linux/blk.h is deprecated, use linux/blkdev.h instead. #include <linux/blkdev.h>
or simply remove the blk.h and fix all files trying to include it?
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon SeedQuoted 9 lines · Adrian Bunk
Quoted 3 lines · Christoph Hellwig
...
+/* this file is obsolete, please use <linux/blkdev.h> instead */
...#warning
linux/blk.his deprecated, uselinux/blkdev.hinstead. #include <linux/blkdev.h>or simply remove the
blk.hand fix all files trying to include it?
Later. First thing is to kill the content, next the users. Adding the warning now would make a normal compile very verbose..
Quoted 6 lines · Christoph Hellwig
Quoted 5 lines · Adrian Bunk
Quoted 3 lines · Christoph Hellwig
...
+/* this file is obsolete, please use <linux/blkdev.h> instead */
...
Quoted 7 lines
Quoted 4 lines
#warning
linux/blk.his deprecated, uselinux/blkdev.hinstead. #include <linux/blkdev.h>or simply remove the
blk.hand fix all files trying to include it?Later. First thing is to kill the content, next the users. Adding the warning now would make a normal compile very verbose..
Shall I prepare a patch removing all #include <linux/blk.h>'s?
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon SeedQuoted 4 lines · Adrian Bunk
Quoted 2 lines
Later. First thing is to kill the content, next the users. Adding the warning now would make a normal compile very verbose..
Shall I prepare a patch removing all #include <linux/blk.h>'s?
Please do so. That means I'll have less work to do :)
Quoted 7 lines · Christoph Hellwig
Quoted 4 lines · Adrian Bunk
Quoted 2 lines
Later. First thing is to kill the content, next the users. Adding the warning now would make a normal compile very verbose..
Shall I prepare a patch removing all #include <linux/blk.h>'s?
Please do so. That means I'll have less work to do :)
A patch against 2.5.68-bk11 plus your patch is attached.
I removed all references to blk.h and blk.h does now #error. If people want their drivers to run unmodified under 2.4 it might be necessary to do a
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,69)
#include <linux/blk.h>
#endif
I've tested the compilation with a .config that tries to compile as much drivers as possible.
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon SeedQuoted 8 lines · Christoph Hellwig
Quoted 4 lines · Adrian Bunk
#warning
linux/blk.his deprecated, uselinux/blkdev.hinstead. #include <linux/blkdev.h>or simply remove the
blk.hand fix all files trying to include it?Later. First thing is to kill the content, next the users. Adding the warning now would make a normal compile very verbose..
And if you leave it around for a while (with warning) after you remove the in-kernel users, people who have out-of-tree users of that header at least have an idea of what to do to fix their code.
Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://www-mddsp.enel.ucalgary.ca/People/adilger/
Followup to: <[email protected]> By author: Christoph Hellwig <[email protected]> In newsgroup: linux.dev.kernel
Quoted 3 lines
Later. First thing is to kill the content, next the users.
I'm not using it! I promise!
-hpa
Signature · 3 lines
<[email protected]> at work, <[email protected]> in private! "Unix gives you enough rope to shoot yourself in the foot." Architectures needed: ia64 m68k mips64 ppc ppc64 s390 s390x sh v850 x86-64