Extend private adjunct to ATIO to have both tag lun, and extended state

(so we can, when things get lost, find out who currently is processing
on behalf of this open exchange. Invariably, when things are lost and
wedged, it's CAM).

Keep an atio resource counter locally.

MFC after:	1 week
This commit is contained in:
Matt Jacob 2002-06-16 05:02:25 +00:00
parent c49c3023c7
commit 759981f464
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=98288

View file

@ -80,8 +80,16 @@ typedef struct {
u_int32_t orig_datalen;
u_int32_t bytes_xfered;
u_int32_t last_xframt;
u_int32_t tag;
u_int32_t tag : 16,
lun : 13, /* not enough */
state : 3;
} atio_private_data_t;
#define ATPD_STATE_FREE 0
#define ATPD_STATE_ATIO 1
#define ATPD_STATE_CAM 2
#define ATPD_STATE_CTIO 3
#define ATPD_STATE_LAST_CTIO 4
#define ATPD_STATE_PDON 5
typedef struct tstate {
struct tstate *next;
@ -91,6 +99,7 @@ typedef struct tstate {
lun_id_t lun;
int bus;
u_int32_t hold;
int atio_count;
} tstate_t;
#define LUN_HASH_SIZE 32