diff options
Diffstat (limited to 'include/scsi/libfc.h')
| -rw-r--r-- | include/scsi/libfc.h | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index e1379b4e8fa..52beadf9a29 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h @@ -410,6 +410,12 @@ struct fc_seq {   * @fh_type:      The frame type   * @class:        The class of service   * @seq:          The sequence in use on this exchange + * @resp_active:  Number of tasks that are concurrently executing @resp(). + * @resp_task:    If @resp_active > 0, either the task executing @resp(), the + *                task that has been interrupted to execute the soft-IRQ + *                executing @resp() or NULL if more than one task is executing + *                @resp concurrently. + * @resp_wq:      Waitqueue for the tasks waiting on @resp_active.   * @resp:         Callback for responses on this exchange   * @destructor:   Called when destroying the exchange   * @arg:          Passed as a void pointer to the resp() callback @@ -441,6 +447,9 @@ struct fc_exch {  	u32		    r_a_tov;  	u32		    f_ctl;  	struct fc_seq       seq; +	int		    resp_active; +	struct task_struct  *resp_task; +	wait_queue_head_t   resp_wq;  	void		    (*resp)(struct fc_seq *, struct fc_frame *, void *);  	void		    *arg;  	void		    (*destructor)(struct fc_seq *, void *);  | 
