aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2007-07-09 06:40:35 -0400
committerJens Axboe <jens.axboe@oracle.com>2007-07-16 02:52:46 -0400
commitd351af01b9307566135cb0f355ca65d0952c10b5 (patch)
tree6d6b964e5d6474f427907ca259e6c6ac76ed9d90 /include/linux
parent45e79a3acdcf54113b3d7b23e9e64e6541dbfeb5 (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.h5
-rw-r--r--include/linux/bsg.h10
-rw-r--r--include/linux/genhd.h2
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
54extern int bsg_register_disk(struct gendisk *); 54extern int bsg_register_queue(struct request_queue *, char *);
55extern void bsg_unregister_disk(struct gendisk *); 55extern void bsg_unregister_queue(struct request_queue *);
56#else 56#else
57struct bsg_class_device { }; 57struct 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
72struct partition { 71struct 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