[SCSI] iscsi class: add bsg support to iscsi class

This patch adds bsg support to the iscsi class. There is only
1 request, the host vendor one, supported. It is expected that
this would be used for things like flash updates.

This patch is made over this one
http://marc.info/?l=linux-scsi&m=131149780020992&w=2

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
Mike Christie
2011-07-25 13:48:50 -05:00
committed by James Bottomley
parent 6ac73e8cb0
commit 90eeb01a03
4 changed files with 230 additions and 2 deletions

View File

@@ -38,6 +38,7 @@ struct iscsi_conn;
struct iscsi_task;
struct sockaddr;
struct iscsi_iface;
struct bsg_job;
/**
* struct iscsi_transport - iSCSI Transport template
@@ -141,9 +142,9 @@ struct iscsi_transport {
enum iscsi_param_type param_type,
int param, char *buf);
mode_t (*attr_is_visible)(int param_type, int param);
int (*bsg_request)(struct bsg_job *job);
};
/*
* transport registration upcalls
*/
@@ -227,8 +228,12 @@ struct iscsi_cls_session {
struct iscsi_cls_host {
atomic_t nr_scans;
struct mutex mutex;
struct request_queue *bsg_q;
};
#define iscsi_job_to_shost(_job) \
dev_to_shost(_job->dev)
extern void iscsi_host_for_each_session(struct Scsi_Host *shost,
void (*fn)(struct iscsi_cls_session *));