[stgt] Help pinpointing cause of tgtd instability

John Pletka jpletka at abraxis.com
Thu Dec 8 18:02:25 CET 2011


If you can confim I applied the patch correctly to this function, it
should be sufficient.  Basically, you want to always return
ISCSI_TMF_RSP_REJECTED , right?

static int iscsi_tm_execute(struct iscsi_task *task)
{
        struct iscsi_connection *conn = task->conn;
        struct iscsi_tm *req = (struct iscsi_tm *) &task->req;
        int fn = 0, err = 0;
        err = ISCSI_TMF_RSP_REJECTED;
#if 0
        switch (req->flags & ISCSI_FLAG_TM_FUNC_MASK) {
        case ISCSI_TM_FUNC_ABORT_TASK:
                fn = ABORT_TASK;
                break;
        case ISCSI_TM_FUNC_ABORT_TASK_SET:
                fn = ABORT_TASK_SET;
                break;
        case ISCSI_TM_FUNC_CLEAR_ACA:
                err = ISCSI_TMF_RSP_NOT_SUPPORTED;
                break;
        case ISCSI_TM_FUNC_CLEAR_TASK_SET:
                err = ISCSI_TMF_RSP_NOT_SUPPORTED;
                break;
        case ISCSI_TM_FUNC_LOGICAL_UNIT_RESET:
                fn = LOGICAL_UNIT_RESET;
                break;
        case ISCSI_TM_FUNC_TARGET_WARM_RESET:
        case ISCSI_TM_FUNC_TARGET_COLD_RESET:
        case ISCSI_TM_FUNC_TASK_REASSIGN:
                err = ISCSI_TMF_RSP_NOT_SUPPORTED;
                break;
        default:
                err = ISCSI_TMF_RSP_REJECTED;

                eprintf("unknown task management function %d\n",
                        req->flags & ISCSI_FLAG_TM_FUNC_MASK);
        }
#endif
        if (err)
                task->result = err;
        else {
                int ret;
                ret = target_mgmt_request(conn->session->target->tid,
                                          conn->session->tsih,
                                          (unsigned long)task, fn, req->lun,
                                          req->rtt, 0);
                set_task_in_scsi(task);
                switch (ret) {
                case MGMT_REQ_QUEUED:
                        break;
                case MGMT_REQ_FAILED:
                case MGMT_REQ_DONE:
                        clear_task_in_scsi(task);
                        break;
                }
        }

        return err;
}





On Wed, Dec 7, 2011 at 5:22 PM, FUJITA Tomonori
<fujita.tomonori at lab.ntt.co.jp> wrote:
> On Mon, 5 Dec 2011 15:13:47 -0500
> John Pletka <jpletka at abraxis.com> wrote:
>
>> Would this be the signature of the task management bug?  The read-only
>
> Looks like so.
>
>> file system issue happened again today with
>> scsi-target-utils-1.0.22-1.el6.x86_64.  That was built from
>> http://kojipkgs.fedoraproject.org/packages/scsi-target-utils/1.0.22/1.fc17/src/scsi-target-utils-1.0.22-1.fc17.src.rpm.
>>  I'd be glad to test your patch, but I'll need some assistance
>> applying it since I don't have a working dev environment setup here.
>
> Do you mean that you need the binary package complied with the patch?
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the stgt mailing list