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>
This commit is contained in:

committed by
Jens Axboe

parent
45e79a3acd
commit
d351af01b9
@@ -14,6 +14,7 @@
|
||||
#include <linux/bio.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/stringify.h>
|
||||
#include <linux/bsg.h>
|
||||
|
||||
#include <asm/scatterlist.h>
|
||||
|
||||
@@ -470,6 +471,10 @@ struct request_queue
|
||||
unsigned int bi_size;
|
||||
|
||||
struct mutex sysfs_lock;
|
||||
|
||||
#if defined(CONFIG_BLK_DEV_BSG)
|
||||
struct bsg_class_device bsg_dev;
|
||||
#endif
|
||||
};
|
||||
|
||||
#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */
|
||||
|
@@ -47,16 +47,16 @@ struct bsg_class_device {
|
||||
struct class_device *class_dev;
|
||||
struct device *dev;
|
||||
int minor;
|
||||
struct gendisk *disk;
|
||||
struct list_head list;
|
||||
struct request_queue *queue;
|
||||
};
|
||||
|
||||
extern int bsg_register_disk(struct gendisk *);
|
||||
extern void bsg_unregister_disk(struct gendisk *);
|
||||
extern int bsg_register_queue(struct request_queue *, char *);
|
||||
extern void bsg_unregister_queue(struct request_queue *);
|
||||
#else
|
||||
struct bsg_class_device { };
|
||||
#define bsg_register_disk(disk) (0)
|
||||
#define bsg_unregister_disk(disk) do { } while (0)
|
||||
#define bsg_register_queue(disk, name) (0)
|
||||
#define bsg_unregister_queue(disk) do { } while (0)
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
@@ -67,7 +67,6 @@ struct partition {
|
||||
#include <linux/string.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/bsg.h>
|
||||
|
||||
struct partition {
|
||||
unsigned char boot_ind; /* 0x80 - active */
|
||||
@@ -92,7 +91,6 @@ struct hd_struct {
|
||||
#ifdef CONFIG_FAIL_MAKE_REQUEST
|
||||
int make_it_fail;
|
||||
#endif
|
||||
struct bsg_class_device bsg_dev;
|
||||
};
|
||||
|
||||
#define GENHD_FL_REMOVABLE 1
|
||||
|
Reference in New Issue
Block a user