socket: add iscsi_out_queue_length() function

This function allows the caller to determine the number of PDUs queued
for transmission for a given iscsi context.

Signed-off-by: David Disseldorp <ddiss@suse.de>
This commit is contained in:
David Disseldorp
2016-03-15 20:43:01 +01:00
parent c38a8c1d9a
commit f117b6c96d
4 changed files with 20 additions and 0 deletions

View File

@@ -82,6 +82,11 @@ EXTERN int iscsi_service(struct iscsi_context *iscsi, int revents);
* How many commands are in flight.
*/
EXTERN int iscsi_queue_length(struct iscsi_context *iscsi);
/*
* How many commands are queued for dispatch.
*/
EXTERN int iscsi_out_queue_length(struct iscsi_context *iscsi);
/************************************************************
* Timeout Handling.

View File

@@ -46,6 +46,7 @@ iscsi_prefetch16_task
iscsi_preventallow_sync
iscsi_preventallow_task
iscsi_queue_length
iscsi_out_queue_length
iscsi_queue_pdu
iscsi_read10_sync
iscsi_read10_task

View File

@@ -44,6 +44,7 @@ iscsi_prefetch16_task
iscsi_preventallow_sync
iscsi_preventallow_task
iscsi_queue_length
iscsi_out_queue_length
iscsi_queue_pdu
iscsi_read10_sync
iscsi_read10_task

View File

@@ -439,6 +439,19 @@ iscsi_queue_length(struct iscsi_context *iscsi)
return i;
}
int
iscsi_out_queue_length(struct iscsi_context *iscsi)
{
int i = 0;
struct iscsi_pdu *pdu;
for (pdu = iscsi->outqueue; pdu; pdu = pdu->next) {
i++;
}
return i;
}
ssize_t
iscsi_iovector_readv_writev(struct iscsi_context *iscsi, struct scsi_iovector *iovector, uint32_t pos, ssize_t count, int do_write)
{