diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2007-07-09 06:40:35 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2007-07-16 02:52:46 -0400 |
commit | d351af01b9307566135cb0f355ca65d0952c10b5 (patch) | |
tree | 6d6b964e5d6474f427907ca259e6c6ac76ed9d90 /include/linux | |
parent | 45e79a3acdcf54113b3d7b23e9e64e6541dbfeb5 (diff) |
bsg: bind bsg to request_queue instead of gendisk
This patch binds bsg devices to request_queue instead of gendisk. Any
objects (like transport entities) can define own request_handler and
create own bsg device.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/blkdev.h | 5 | ||||
-rw-r--r-- | include/linux/bsg.h | 10 | ||||
-rw-r--r-- | include/linux/genhd.h | 2 |
3 files changed, 10 insertions, 7 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 2746632c2267..24b474e05a44 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/bio.h> | 14 | #include <linux/bio.h> |
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/stringify.h> | 16 | #include <linux/stringify.h> |
17 | #include <linux/bsg.h> | ||
17 | 18 | ||
18 | #include <asm/scatterlist.h> | 19 | #include <asm/scatterlist.h> |
19 | 20 | ||
@@ -470,6 +471,10 @@ struct request_queue | |||
470 | unsigned int bi_size; | 471 | unsigned int bi_size; |
471 | 472 | ||
472 | struct mutex sysfs_lock; | 473 | struct mutex sysfs_lock; |
474 | |||
475 | #if defined(CONFIG_BLK_DEV_BSG) | ||
476 | struct bsg_class_device bsg_dev; | ||
477 | #endif | ||
473 | }; | 478 | }; |
474 | 479 | ||
475 | #define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ | 480 | #define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ |
diff --git a/include/linux/bsg.h b/include/linux/bsg.h index 2154a6dfbd53..0475a6d3ff6a 100644 --- a/include/linux/bsg.h +++ b/include/linux/bsg.h | |||
@@ -47,16 +47,16 @@ struct bsg_class_device { | |||
47 | struct class_device *class_dev; | 47 | struct class_device *class_dev; |
48 | struct device *dev; | 48 | struct device *dev; |
49 | int minor; | 49 | int minor; |
50 | struct gendisk *disk; | ||
51 | struct list_head list; | 50 | struct list_head list; |
51 | struct request_queue *queue; | ||
52 | }; | 52 | }; |
53 | 53 | ||
54 | extern int bsg_register_disk(struct gendisk *); | 54 | extern int bsg_register_queue(struct request_queue *, char *); |
55 | extern void bsg_unregister_disk(struct gendisk *); | 55 | extern void bsg_unregister_queue(struct request_queue *); |
56 | #else | 56 | #else |
57 | struct bsg_class_device { }; | 57 | struct bsg_class_device { }; |
58 | #define bsg_register_disk(disk) (0) | 58 | #define bsg_register_queue(disk, name) (0) |
59 | #define bsg_unregister_disk(disk) do { } while (0) | 59 | #define bsg_unregister_queue(disk) do { } while (0) |
60 | #endif | 60 | #endif |
61 | 61 | ||
62 | #endif /* __KERNEL__ */ | 62 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 8c43d7032612..9756fc102a83 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
@@ -67,7 +67,6 @@ struct partition { | |||
67 | #include <linux/string.h> | 67 | #include <linux/string.h> |
68 | #include <linux/fs.h> | 68 | #include <linux/fs.h> |
69 | #include <linux/workqueue.h> | 69 | #include <linux/workqueue.h> |
70 | #include <linux/bsg.h> | ||
71 | 70 | ||
72 | struct partition { | 71 | struct partition { |
73 | unsigned char boot_ind; /* 0x80 - active */ | 72 | unsigned char boot_ind; /* 0x80 - active */ |
@@ -92,7 +91,6 @@ struct hd_struct { | |||
92 | #ifdef CONFIG_FAIL_MAKE_REQUEST | 91 | #ifdef CONFIG_FAIL_MAKE_REQUEST |
93 | int make_it_fail; | 92 | int make_it_fail; |
94 | #endif | 93 | #endif |
95 | struct bsg_class_device bsg_dev; | ||
96 | }; | 94 | }; |
97 | 95 | ||
98 | #define GENHD_FL_REMOVABLE 1 | 96 | #define GENHD_FL_REMOVABLE 1 |