Re: [RFC] FC pass thru - Rev V

Boaz Harrosh
2009-03-15T09:32:12Z

Seokmann Ju wrote:
> On Feb 11, 2009, at 7:43 AM, Seokmann Ju wrote:
>
>> On Feb 11, 2009, at 7:13 AM, James Smart wrote:
>>
>>> Trying to kick-start this again...
>>> I've updated the prior RFC with the comments from Seokmann,
>>> SvenFujita, and Boaz. I would still like review on the
>>> blk_xxx completion calls in the std and error paths.
>> I'm looking the driver changes to match it with latest updates in
>> the transport layer.
>> The driver with the changes should be available within a couple of
>> weeks.
> Here is a change that I've made for transport layer while I'm testing
> the feature.
> ---
> diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/
> scsi_transport_fc.c
> index 63ab7bc..4bca164 100644
> --- a/drivers/scsi/scsi_transport_fc.c
> +++ b/drivers/scsi/scsi_transport_fc.c
> @@ -3435,10 +3435,11 @@ fc_bsg_jobdone(struct fc_bsg_job *job)
> BUG_ON(job->reply->reply_payload_rcv_len > rsp_len);
> /* set reply (bidi) residual */
> rsp->data_len = (rsp_len - job->reply-
> >reply_payload_rcv_len);

This part looks a bit white-space broken.

> - }
> + blk_end_bidi_request(req, err, blk_rq_bytes(req),
> + job->reply->reply_payload_rcv_len);
>
> - /* we assume all request payload was transferred */
> - blk_end_request(req, err, blk_rq_bytes(req));
> + } else
> + blk_end_request(req, err, blk_rq_bytes(req));

I still do not like this version for more then one reason. There is
a more proper simpler way.

Where is the code-base this is patching? I'll make a proper patch for you.

>
> fc_destroy_bsgjob(job);
> }
> ---
>
> With this change, I'm able to issue several ELS/CT services to the
> qla2xxx module for those registered to the transport layer and have
> rport associated with them.
>
<snip>

Boaz