2017-03-07 09:23:15

by Kinglong Mee

[permalink] [raw]
Subject: [PATCH] SUNRPC/backchanel: set XPT_CONG_CTRL flag for bc xprt

The xprt for backchannel is created separately, not in TCP/UDP code.
Because without the flags, the requests from NFSv41 backchannel are
rejected in svc_process_common(),

1191 if (versp->vs_need_cong_ctrl &&
1192 !test_bit(XPT_CONG_CTRL, &rqstp->rq_xprt->xpt_flags))
1193 goto err_bad_vers;

Fixes: 5283b03ee5 ("nfs/nfsd/sunrpc: enforce transport...")
Signed-off-by: Kinglong Mee <[email protected]>
---
net/sunrpc/svcsock.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 8931e33..2b720fa 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -1635,6 +1635,7 @@ static struct svc_xprt *svc_bc_create_socket(struct svc_serv *serv,

xprt = &svsk->sk_xprt;
svc_xprt_init(net, &svc_tcp_bc_class, xprt, serv);
+ set_bit(XPT_CONG_CTRL, &svsk->sk_xprt.xpt_flags);

serv->sv_bc_xprt = xprt;

--
2.9.3



2017-03-07 11:12:14

by Jeff Layton

[permalink] [raw]
Subject: Re: [PATCH] SUNRPC/backchanel: set XPT_CONG_CTRL flag for bc xprt

On Tue, 2017-03-07 at 17:22 +0800, Kinglong Mee wrote:
> The xprt for backchannel is created separately, not in TCP/UDP code.
> Because without the flags, the requests from NFSv41 backchannel are
> rejected in svc_process_common(),
>
> 1191 if (versp->vs_need_cong_ctrl &&
> 1192 !test_bit(XPT_CONG_CTRL, &rqstp->rq_xprt->xpt_flags))
> 1193 goto err_bad_vers;
>
> Fixes: 5283b03ee5 ("nfs/nfsd/sunrpc: enforce transport...")
> Signed-off-by: Kinglong Mee <[email protected]>
> ---
> net/sunrpc/svcsock.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
> index 8931e33..2b720fa 100644
> --- a/net/sunrpc/svcsock.c
> +++ b/net/sunrpc/svcsock.c
> @@ -1635,6 +1635,7 @@ static struct svc_xprt *svc_bc_create_socket(struct svc_serv *serv,
>
> xprt = &svsk->sk_xprt;
> svc_xprt_init(net, &svc_tcp_bc_class, xprt, serv);
> + set_bit(XPT_CONG_CTRL, &svsk->sk_xprt.xpt_flags);
>
> serv->sv_bc_xprt = xprt;
>

Good catch.

Reviewed-by: Jeff Layton <[email protected]>

2017-03-09 20:26:15

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH] SUNRPC/backchanel: set XPT_CONG_CTRL flag for bc xprt

Thanks! Applying.--b.

On Tue, Mar 07, 2017 at 06:11:21AM -0500, Jeff Layton wrote:
> On Tue, 2017-03-07 at 17:22 +0800, Kinglong Mee wrote:
> > The xprt for backchannel is created separately, not in TCP/UDP code.
> > Because without the flags, the requests from NFSv41 backchannel are
> > rejected in svc_process_common(),
> >
> > 1191 if (versp->vs_need_cong_ctrl &&
> > 1192 !test_bit(XPT_CONG_CTRL, &rqstp->rq_xprt->xpt_flags))
> > 1193 goto err_bad_vers;
> >
> > Fixes: 5283b03ee5 ("nfs/nfsd/sunrpc: enforce transport...")
> > Signed-off-by: Kinglong Mee <[email protected]>
> > ---
> > net/sunrpc/svcsock.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
> > index 8931e33..2b720fa 100644
> > --- a/net/sunrpc/svcsock.c
> > +++ b/net/sunrpc/svcsock.c
> > @@ -1635,6 +1635,7 @@ static struct svc_xprt *svc_bc_create_socket(struct svc_serv *serv,
> >
> > xprt = &svsk->sk_xprt;
> > svc_xprt_init(net, &svc_tcp_bc_class, xprt, serv);
> > + set_bit(XPT_CONG_CTRL, &svsk->sk_xprt.xpt_flags);
> >
> > serv->sv_bc_xprt = xprt;
> >
>
> Good catch.
>
> Reviewed-by: Jeff Layton <[email protected]>

2017-03-10 21:29:11

by Benjamin Coddington

[permalink] [raw]
Subject: Re: [PATCH] SUNRPC/backchanel: set XPT_CONG_CTRL flag for bc xprt

On 9 Mar 2017, at 15:26, J. Bruce Fields wrote:

> Thanks! Applying.--b.
>
> On Tue, Mar 07, 2017 at 06:11:21AM -0500, Jeff Layton wrote:
>> On Tue, 2017-03-07 at 17:22 +0800, Kinglong Mee wrote:
>>> The xprt for backchannel is created separately, not in TCP/UDP code.
>>> Because without the flags, the requests from NFSv41 backchannel are
>>> rejected in svc_process_common(),
>>>
>>> 1191 if (versp->vs_need_cong_ctrl &&
>>> 1192 !test_bit(XPT_CONG_CTRL,
>>> &rqstp->rq_xprt->xpt_flags))
>>> 1193 goto err_bad_vers;
>>>
>>> Fixes: 5283b03ee5 ("nfs/nfsd/sunrpc: enforce transport...")
>>> Signed-off-by: Kinglong Mee <[email protected]>
>>> ---
>>> net/sunrpc/svcsock.c | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
>>> index 8931e33..2b720fa 100644
>>> --- a/net/sunrpc/svcsock.c
>>> +++ b/net/sunrpc/svcsock.c
>>> @@ -1635,6 +1635,7 @@ static struct svc_xprt
>>> *svc_bc_create_socket(struct svc_serv *serv,
>>>
>>> xprt = &svsk->sk_xprt;
>>> svc_xprt_init(net, &svc_tcp_bc_class, xprt, serv);
>>> + set_bit(XPT_CONG_CTRL, &svsk->sk_xprt.xpt_flags);
>>>
>>> serv->sv_bc_xprt = xprt;
>>>
>>
>> Good catch.
>>
>> Reviewed-by: Jeff Layton <[email protected]>

This one fixes my failing xfstests generic/089. Thanks, Kinglong Mee.

Ben

2017-03-31 20:44:44

by Olga Kornievskaia

[permalink] [raw]
Subject: Re: [PATCH] SUNRPC/backchanel: set XPT_CONG_CTRL flag for bc xprt

Hey Bruce,

When is this going to go upstream?

On Thu, Mar 9, 2017 at 3:26 PM, J. Bruce Fields <[email protected]> wrote:
> Thanks! Applying.--b.
>
> On Tue, Mar 07, 2017 at 06:11:21AM -0500, Jeff Layton wrote:
>> On Tue, 2017-03-07 at 17:22 +0800, Kinglong Mee wrote:
>> > The xprt for backchannel is created separately, not in TCP/UDP code.
>> > Because without the flags, the requests from NFSv41 backchannel are
>> > rejected in svc_process_common(),
>> >
>> > 1191 if (versp->vs_need_cong_ctrl &&
>> > 1192 !test_bit(XPT_CONG_CTRL, &rqstp->rq_xprt->xpt_flags))
>> > 1193 goto err_bad_vers;
>> >
>> > Fixes: 5283b03ee5 ("nfs/nfsd/sunrpc: enforce transport...")
>> > Signed-off-by: Kinglong Mee <[email protected]>
>> > ---
>> > net/sunrpc/svcsock.c | 1 +
>> > 1 file changed, 1 insertion(+)
>> >
>> > diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
>> > index 8931e33..2b720fa 100644
>> > --- a/net/sunrpc/svcsock.c
>> > +++ b/net/sunrpc/svcsock.c
>> > @@ -1635,6 +1635,7 @@ static struct svc_xprt *svc_bc_create_socket(struct svc_serv *serv,
>> >
>> > xprt = &svsk->sk_xprt;
>> > svc_xprt_init(net, &svc_tcp_bc_class, xprt, serv);
>> > + set_bit(XPT_CONG_CTRL, &svsk->sk_xprt.xpt_flags);
>> >
>> > serv->sv_bc_xprt = xprt;
>> >
>>
>> Good catch.
>>
>> Reviewed-by: Jeff Layton <[email protected]>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2017-04-01 01:07:58

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH] SUNRPC/backchanel: set XPT_CONG_CTRL flag for bc xprt

On Fri, Mar 31, 2017 at 04:44:43PM -0400, Olga Kornievskaia wrote:
> Hey Bruce,
>
> When is this going to go upstream?

I have it queued up for 4.11. I'm hoping to send out a pull request
tonight, since I'll be taking most of next week off.

--b.

>
> On Thu, Mar 9, 2017 at 3:26 PM, J. Bruce Fields <[email protected]> wrote:
> > Thanks! Applying.--b.
> >
> > On Tue, Mar 07, 2017 at 06:11:21AM -0500, Jeff Layton wrote:
> >> On Tue, 2017-03-07 at 17:22 +0800, Kinglong Mee wrote:
> >> > The xprt for backchannel is created separately, not in TCP/UDP code.
> >> > Because without the flags, the requests from NFSv41 backchannel are
> >> > rejected in svc_process_common(),
> >> >
> >> > 1191 if (versp->vs_need_cong_ctrl &&
> >> > 1192 !test_bit(XPT_CONG_CTRL, &rqstp->rq_xprt->xpt_flags))
> >> > 1193 goto err_bad_vers;
> >> >
> >> > Fixes: 5283b03ee5 ("nfs/nfsd/sunrpc: enforce transport...")
> >> > Signed-off-by: Kinglong Mee <[email protected]>
> >> > ---
> >> > net/sunrpc/svcsock.c | 1 +
> >> > 1 file changed, 1 insertion(+)
> >> >
> >> > diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
> >> > index 8931e33..2b720fa 100644
> >> > --- a/net/sunrpc/svcsock.c
> >> > +++ b/net/sunrpc/svcsock.c
> >> > @@ -1635,6 +1635,7 @@ static struct svc_xprt *svc_bc_create_socket(struct svc_serv *serv,
> >> >
> >> > xprt = &svsk->sk_xprt;
> >> > svc_xprt_init(net, &svc_tcp_bc_class, xprt, serv);
> >> > + set_bit(XPT_CONG_CTRL, &svsk->sk_xprt.xpt_flags);
> >> >
> >> > serv->sv_bc_xprt = xprt;
> >> >
> >>
> >> Good catch.
> >>
> >> Reviewed-by: Jeff Layton <[email protected]>
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html