* libfc_lport.c:fc_lport_recv_req() dropping struct fc_seq parameter for v2.6.36-rc3..?
@ 2010-08-31 20:14 Nicholas A. Bellinger
[not found] ` <1283285663.32007.476.camel-Y1+j5t8j3WgjMeEPmliV8E/sVC8ogwMJ@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Nicholas A. Bellinger @ 2010-08-31 20:14 UTC (permalink / raw)
To: Joe Eykholt, Love, Robert W; +Cc: openfcoe-devel, linux-scsi
Hi Joe and Robert,
So after jumping to v2.6.36-rc3 for the lio-core-2.6.git/lio-4.0 branch
recently and fixing some minor breakage around the original struct
fc4_prov patches I merged from Joe in the spring, mostly having to do
with drivers/scsi/libfc/libfc_lport.c:fc_lport_recv_req() changes from
this commit:
[SCSI] libfc: don't require a local exchange for incomining requests
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=922611569572d3c1aa0ed6491d21583fb3fcca22
I was able to get libfc + struct fc4_prov compiling after fixing the
conflicts. However, I have run into non-trivial breakage in the
Open-FCoE.org / TCM_FC fabric module itself because of it's dependence
bit upon having direct access to the passed struct fc_seq. The code
currently assigns to struct fc_seq * to struct ft_cmd->seq, and gets
used in a number of subsequent areas after the struct fc4_prov->recv()
entry hook at drivers/target/tcm_fc/tfc_cmd.c:ft_recv_cmd() gets called.
I took a very brief look at trying to resolve the breakage myself, but
quickly got a bit lost in terms of what TCM_FC actually needs to be
accessing struct fc_seq directly for. Would either of you gentlemen
mind giving me a bit of insight into what you think would be required by
TCM_FC in order to function with the recent libfc fc_lport_recv_req()
changes..?
Thanks!
--nab
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: libfc_lport.c:fc_lport_recv_req() dropping struct fc_seq parameter for v2.6.36-rc3..?
[not found] ` <1283285663.32007.476.camel-Y1+j5t8j3WgjMeEPmliV8E/sVC8ogwMJ@public.gmane.org>
@ 2010-08-31 20:50 ` Joe Eykholt
2010-08-31 21:00 ` Nicholas A. Bellinger
0 siblings, 1 reply; 4+ messages in thread
From: Joe Eykholt @ 2010-08-31 20:50 UTC (permalink / raw)
To: linux-iscsi-target-dev-/JYPxA39Uh5TLH3MbocFFw; +Cc: openfcoe-devel, linux-scsi
On 8/31/10 1:14 PM, Nicholas A. Bellinger wrote:
> Hi Joe and Robert,
>
> So after jumping to v2.6.36-rc3 for the lio-core-2.6.git/lio-4.0 branch
> recently and fixing some minor breakage around the original struct
> fc4_prov patches I merged from Joe in the spring, mostly having to do
> with drivers/scsi/libfc/libfc_lport.c:fc_lport_recv_req() changes from
> this commit:
>
> [SCSI] libfc: don't require a local exchange for incomining requests
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=922611569572d3c1aa0ed6491d21583fb3fcca22
>
> I was able to get libfc + struct fc4_prov compiling after fixing the
> conflicts. However, I have run into non-trivial breakage in the
> Open-FCoE.org / TCM_FC fabric module itself because of it's dependence
> bit upon having direct access to the passed struct fc_seq. The code
> currently assigns to struct fc_seq * to struct ft_cmd->seq, and gets
> used in a number of subsequent areas after the struct fc4_prov->recv()
> entry hook at drivers/target/tcm_fc/tfc_cmd.c:ft_recv_cmd() gets called.
>
> I took a very brief look at trying to resolve the breakage myself, but
> quickly got a bit lost in terms of what TCM_FC actually needs to be
> accessing struct fc_seq directly for. Would either of you gentlemen
> mind giving me a bit of insight into what you think would be required by
> TCM_FC in order to function with the recent libfc fc_lport_recv_req()
> changes..?
I caused this problem, and anticipated that I would have
to make changes to tcm_fc to accommodate it. Then I forgot by the
time it made it upstream.
Now incoming requests don't get a sequence assigned unless they ask for
it, so we need to call lport->tt.seq_assign() for the request.
It turns out I forgot that that takes a reference on the sequence, so
I have another patch to add to drop the refcnt.
I can work on this at some point in the next few days if you can wait.
Joe
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: libfc_lport.c:fc_lport_recv_req() dropping struct fc_seq parameter for v2.6.36-rc3..?
2010-08-31 20:50 ` Joe Eykholt
@ 2010-08-31 21:00 ` Nicholas A. Bellinger
2010-08-31 21:12 ` Joe Eykholt
0 siblings, 1 reply; 4+ messages in thread
From: Nicholas A. Bellinger @ 2010-08-31 21:00 UTC (permalink / raw)
To: Joe Eykholt
Cc: linux-iscsi-target-dev, Love, Robert W, openfcoe-devel,
linux-scsi
On Tue, 2010-08-31 at 13:50 -0700, Joe Eykholt wrote:
>
> On 8/31/10 1:14 PM, Nicholas A. Bellinger wrote:
> > Hi Joe and Robert,
> >
> > So after jumping to v2.6.36-rc3 for the lio-core-2.6.git/lio-4.0 branch
> > recently and fixing some minor breakage around the original struct
> > fc4_prov patches I merged from Joe in the spring, mostly having to do
> > with drivers/scsi/libfc/libfc_lport.c:fc_lport_recv_req() changes from
> > this commit:
> >
> > [SCSI] libfc: don't require a local exchange for incomining requests
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=922611569572d3c1aa0ed6491d21583fb3fcca22
> >
> > I was able to get libfc + struct fc4_prov compiling after fixing the
> > conflicts. However, I have run into non-trivial breakage in the
> > Open-FCoE.org / TCM_FC fabric module itself because of it's dependence
> > bit upon having direct access to the passed struct fc_seq. The code
> > currently assigns to struct fc_seq * to struct ft_cmd->seq, and gets
> > used in a number of subsequent areas after the struct fc4_prov->recv()
> > entry hook at drivers/target/tcm_fc/tfc_cmd.c:ft_recv_cmd() gets called.
> >
> > I took a very brief look at trying to resolve the breakage myself, but
> > quickly got a bit lost in terms of what TCM_FC actually needs to be
> > accessing struct fc_seq directly for. Would either of you gentlemen
> > mind giving me a bit of insight into what you think would be required by
> > TCM_FC in order to function with the recent libfc fc_lport_recv_req()
> > changes..?
>
> I caused this problem, and anticipated that I would have
> to make changes to tcm_fc to accommodate it. Then I forgot by the
> time it made it upstream.
<nod>
>
> Now incoming requests don't get a sequence assigned unless they ask for
> it, so we need to call lport->tt.seq_assign() for the request.
> It turns out I forgot that that takes a reference on the sequence, so
> I have another patch to add to drop the refcnt.
>
Ahh, I think I understand a bit more now, thanks for the extra context
here. Does this mean that lport->tt.seq_assign() will be returning the
struct fc_exch * used by the primary READ/WRITE handlers in tfc_io.c
code..?
> I can work on this at some point in the next few days if you can wait.
>
Sure, no rush on this item. I was just curious to understand the bigger
picture of the recent changes you guys have been working on. 8-)
Thanks for your comments Joe!
--nab
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: libfc_lport.c:fc_lport_recv_req() dropping struct fc_seq parameter for v2.6.36-rc3..?
2010-08-31 21:00 ` Nicholas A. Bellinger
@ 2010-08-31 21:12 ` Joe Eykholt
0 siblings, 0 replies; 4+ messages in thread
From: Joe Eykholt @ 2010-08-31 21:12 UTC (permalink / raw)
To: Nicholas A. Bellinger
Cc: linux-iscsi-target-dev, Love, Robert W, openfcoe-devel,
linux-scsi
On 8/31/10 2:00 PM, Nicholas A. Bellinger wrote:
> On Tue, 2010-08-31 at 13:50 -0700, Joe Eykholt wrote:
>>
>> On 8/31/10 1:14 PM, Nicholas A. Bellinger wrote:
>>> Hi Joe and Robert,
>>>
>>> So after jumping to v2.6.36-rc3 for the lio-core-2.6.git/lio-4.0 branch
>>> recently and fixing some minor breakage around the original struct
>>> fc4_prov patches I merged from Joe in the spring, mostly having to do
>>> with drivers/scsi/libfc/libfc_lport.c:fc_lport_recv_req() changes from
>>> this commit:
>>>
>>> [SCSI] libfc: don't require a local exchange for incomining requests
>>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=922611569572d3c1aa0ed6491d21583fb3fcca22
>>>
>>> I was able to get libfc + struct fc4_prov compiling after fixing the
>>> conflicts. However, I have run into non-trivial breakage in the
>>> Open-FCoE.org / TCM_FC fabric module itself because of it's dependence
>>> bit upon having direct access to the passed struct fc_seq. The code
>>> currently assigns to struct fc_seq * to struct ft_cmd->seq, and gets
>>> used in a number of subsequent areas after the struct fc4_prov->recv()
>>> entry hook at drivers/target/tcm_fc/tfc_cmd.c:ft_recv_cmd() gets called.
>>>
>>> I took a very brief look at trying to resolve the breakage myself, but
>>> quickly got a bit lost in terms of what TCM_FC actually needs to be
>>> accessing struct fc_seq directly for. Would either of you gentlemen
>>> mind giving me a bit of insight into what you think would be required by
>>> TCM_FC in order to function with the recent libfc fc_lport_recv_req()
>>> changes..?
>>
>> I caused this problem, and anticipated that I would have
>> to make changes to tcm_fc to accommodate it. Then I forgot by the
>> time it made it upstream.
>
> <nod>
>
>>
>> Now incoming requests don't get a sequence assigned unless they ask for
>> it, so we need to call lport->tt.seq_assign() for the request.
>> It turns out I forgot that that takes a reference on the sequence, so
>> I have another patch to add to drop the refcnt.
>>
>
> Ahh, I think I understand a bit more now, thanks for the extra context
> here. Does this mean that lport->tt.seq_assign() will be returning the
> struct fc_exch * used by the primary READ/WRITE handlers in tfc_io.c
> code..?
Sort of. It returns a struct fc_seq *, but sequences and exchanges are 1:1,
so we can find the exchange using fc_seq_exch().
>> I can work on this at some point in the next few days if you can wait.
> Sure, no rush on this item. I was just curious to understand the bigger
> picture of the recent changes you guys have been working on. 8-)
>
> Thanks for your comments Joe!
>
> --nab
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-08-31 21:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-31 20:14 libfc_lport.c:fc_lport_recv_req() dropping struct fc_seq parameter for v2.6.36-rc3..? Nicholas A. Bellinger
[not found] ` <1283285663.32007.476.camel-Y1+j5t8j3WgjMeEPmliV8E/sVC8ogwMJ@public.gmane.org>
2010-08-31 20:50 ` Joe Eykholt
2010-08-31 21:00 ` Nicholas A. Bellinger
2010-08-31 21:12 ` Joe Eykholt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).