change dont automatically free the scsi_task once the callback completes.

Freeing the scsi_task structure is the responsibility of the application
to either do so during the callback, or later.
This commit is contained in:
Ronnie Sahlberg
2011-03-27 17:53:05 +11:00
parent 4e6e39ee23
commit f4f6ef5033
7 changed files with 51 additions and 21 deletions

View File

@@ -249,7 +249,5 @@ void iscsi_set_error(struct iscsi_context *iscsi, const char *error_string,
unsigned long crc32c(char *buf, int len);
void iscsi_cbdata_steal_scsi_task(struct scsi_task *task);
#endif /* __iscsi_private_h__ */

View File

@@ -523,6 +523,18 @@ iscsi_set_isid_random(struct iscsi_context *iscsi, uint32_t rnd, uint32_t qualif
int
iscsi_set_isid_reserved(struct iscsi_context *iscsi);
/*
* The scsi commands use/return a scsi_task structure either when invoked
* or through the callback.
* You must release this structure when you are finished with the task
* by calling scsi_free_scsi_task().
* Most of the time this means you should call this function before returning
* from the callback.
*/
/*
* Async commands for SCSI
*/