* [PATCH 09/44] nfsd41: sanity check client drc maxreqs
@ 2009-06-16 1:19 Benny Halevy
2009-06-17 0:35 ` J. Bruce Fields
0 siblings, 1 reply; 5+ messages in thread
From: Benny Halevy @ 2009-06-16 1:19 UTC (permalink / raw)
To: bfields; +Cc: pnfs, linux-nfs
From: Andy Adamson <andros@netapp.com>
Ensure the client requested maximum requests are between 1 and
NFSD_MAX_SLOTS_PER_SESSION
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
---
fs/nfsd/nfs4state.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 582cd2c..90e6645 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -425,6 +425,11 @@ static int set_forechannel_maxreqs(struct nfsd4_channel_attrs *fchan)
{
int status = 0, np = fchan->maxreqs * NFSD_PAGES_PER_SLOT;
+ if (fchan->maxreqs < 1)
+ return nfserr_inval;
+ else if (fchan->maxreqs > NFSD_MAX_SLOTS_PER_SESSION)
+ fchan->maxreqs = NFSD_MAX_SLOTS_PER_SESSION;
+
spin_lock(&nfsd_serv->sv_lock);
if (np + nfsd_serv->sv_drc_pages_used > nfsd_serv->sv_drc_max_pages)
np = nfsd_serv->sv_drc_max_pages - nfsd_serv->sv_drc_pages_used;
--
1.6.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 09/44] nfsd41: sanity check client drc maxreqs
2009-06-16 1:19 [PATCH 09/44] nfsd41: sanity check client drc maxreqs Benny Halevy
@ 2009-06-17 0:35 ` J. Bruce Fields
2009-06-17 0:44 ` J. Bruce Fields
2009-06-17 1:23 ` William A. (Andy) Adamson
0 siblings, 2 replies; 5+ messages in thread
From: J. Bruce Fields @ 2009-06-17 0:35 UTC (permalink / raw)
To: Benny Halevy; +Cc: pnfs, linux-nfs, andros
On Tue, Jun 16, 2009 at 04:19:38AM +0300, Benny Halevy wrote:
> From: Andy Adamson <andros@netapp.com>
>
> Ensure the client requested maximum requests are between 1 and
> NFSD_MAX_SLOTS_PER_SESSION
>
> Signed-off-by: Andy Adamson <andros@netapp.com>
> Signed-off-by: Benny Halevy <bhalevy@panasas.com>
> ---
> fs/nfsd/nfs4state.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index 582cd2c..90e6645 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -425,6 +425,11 @@ static int set_forechannel_maxreqs(struct nfsd4_channel_attrs *fchan)
> {
> int status = 0, np = fchan->maxreqs * NFSD_PAGES_PER_SLOT;
>
> + if (fchan->maxreqs < 1)
> + return nfserr_inval;
> + else if (fchan->maxreqs > NFSD_MAX_SLOTS_PER_SESSION)
> + fchan->maxreqs = NFSD_MAX_SLOTS_PER_SESSION;
> +
> spin_lock(&nfsd_serv->sv_lock);
How did this use of sv_lock creep in? Let's remove that before we do
anything else....
--b.
> if (np + nfsd_serv->sv_drc_pages_used > nfsd_serv->sv_drc_max_pages)
> np = nfsd_serv->sv_drc_max_pages - nfsd_serv->sv_drc_pages_used;
> --
> 1.6.3
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 09/44] nfsd41: sanity check client drc maxreqs
2009-06-17 0:35 ` J. Bruce Fields
@ 2009-06-17 0:44 ` J. Bruce Fields
2009-06-17 21:41 ` J. Bruce Fields
2009-06-17 1:23 ` William A. (Andy) Adamson
1 sibling, 1 reply; 5+ messages in thread
From: J. Bruce Fields @ 2009-06-17 0:44 UTC (permalink / raw)
To: Benny Halevy; +Cc: pnfs, linux-nfs, andros
On Tue, Jun 16, 2009 at 08:35:38PM -0400, bfields wrote:
> On Tue, Jun 16, 2009 at 04:19:38AM +0300, Benny Halevy wrote:
> > From: Andy Adamson <andros@netapp.com>
> >
> > Ensure the client requested maximum requests are between 1 and
> > NFSD_MAX_SLOTS_PER_SESSION
> >
> > Signed-off-by: Andy Adamson <andros@netapp.com>
> > Signed-off-by: Benny Halevy <bhalevy@panasas.com>
> > ---
> > fs/nfsd/nfs4state.c | 5 +++++
> > 1 files changed, 5 insertions(+), 0 deletions(-)
> >
> > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> > index 582cd2c..90e6645 100644
> > --- a/fs/nfsd/nfs4state.c
> > +++ b/fs/nfsd/nfs4state.c
> > @@ -425,6 +425,11 @@ static int set_forechannel_maxreqs(struct nfsd4_channel_attrs *fchan)
> > {
> > int status = 0, np = fchan->maxreqs * NFSD_PAGES_PER_SLOT;
> >
> > + if (fchan->maxreqs < 1)
> > + return nfserr_inval;
> > + else if (fchan->maxreqs > NFSD_MAX_SLOTS_PER_SESSION)
> > + fchan->maxreqs = NFSD_MAX_SLOTS_PER_SESSION;
> > +
> > spin_lock(&nfsd_serv->sv_lock);
>
> How did this use of sv_lock creep in? Let's remove that before we do
> anything else....
(But--applied.)
--b.
>
> --b.
>
> > if (np + nfsd_serv->sv_drc_pages_used > nfsd_serv->sv_drc_max_pages)
> > np = nfsd_serv->sv_drc_max_pages - nfsd_serv->sv_drc_pages_used;
> > --
> > 1.6.3
> >
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 09/44] nfsd41: sanity check client drc maxreqs
2009-06-17 0:35 ` J. Bruce Fields
2009-06-17 0:44 ` J. Bruce Fields
@ 2009-06-17 1:23 ` William A. (Andy) Adamson
1 sibling, 0 replies; 5+ messages in thread
From: William A. (Andy) Adamson @ 2009-06-17 1:23 UTC (permalink / raw)
To: J. Bruce Fields; +Cc: Benny Halevy, pnfs, linux-nfs, andros
On Tue, Jun 16, 2009 at 8:35 PM, J. Bruce Fields<bfields@fieldses.org> wrote:
> On Tue, Jun 16, 2009 at 04:19:38AM +0300, Benny Halevy wrote:
>> From: Andy Adamson <andros@netapp.com>
>>
>> Ensure the client requested maximum requests are between 1 and
>> NFSD_MAX_SLOTS_PER_SESSION
>>
>> Signed-off-by: Andy Adamson <andros@netapp.com>
>> Signed-off-by: Benny Halevy <bhalevy@panasas.com>
>> ---
>> fs/nfsd/nfs4state.c | 5 +++++
>> 1 files changed, 5 insertions(+), 0 deletions(-)
>>
>> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
>> index 582cd2c..90e6645 100644
>> --- a/fs/nfsd/nfs4state.c
>> +++ b/fs/nfsd/nfs4state.c
>> @@ -425,6 +425,11 @@ static int set_forechannel_maxreqs(struct nfsd4_channel_attrs *fchan)
>> {
>> int status = 0, np = fchan->maxreqs * NFSD_PAGES_PER_SLOT;
>>
>> + if (fchan->maxreqs < 1)
>> + return nfserr_inval;
>> + else if (fchan->maxreqs > NFSD_MAX_SLOTS_PER_SESSION)
>> + fchan->maxreqs = NFSD_MAX_SLOTS_PER_SESSION;
>> +
>> spin_lock(&nfsd_serv->sv_lock);
>
> How did this use of sv_lock creep in? Let's remove that before we do
> anything else....
I remove it later.....
-->Andy
>
> --b.
>
>> if (np + nfsd_serv->sv_drc_pages_used > nfsd_serv->sv_drc_max_pages)
>> np = nfsd_serv->sv_drc_max_pages - nfsd_serv->sv_drc_pages_used;
>> --
>> 1.6.3
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 09/44] nfsd41: sanity check client drc maxreqs
2009-06-17 0:44 ` J. Bruce Fields
@ 2009-06-17 21:41 ` J. Bruce Fields
0 siblings, 0 replies; 5+ messages in thread
From: J. Bruce Fields @ 2009-06-17 21:41 UTC (permalink / raw)
To: Benny Halevy; +Cc: pnfs, linux-nfs, andros
On Tue, Jun 16, 2009 at 08:44:43PM -0400, bfields wrote:
> On Tue, Jun 16, 2009 at 08:35:38PM -0400, bfields wrote:
> > On Tue, Jun 16, 2009 at 04:19:38AM +0300, Benny Halevy wrote:
> > > From: Andy Adamson <andros@netapp.com>
> > >
> > > Ensure the client requested maximum requests are between 1 and
> > > NFSD_MAX_SLOTS_PER_SESSION
> > >
> > > Signed-off-by: Andy Adamson <andros@netapp.com>
> > > Signed-off-by: Benny Halevy <bhalevy@panasas.com>
> > > ---
> > > fs/nfsd/nfs4state.c | 5 +++++
> > > 1 files changed, 5 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> > > index 582cd2c..90e6645 100644
> > > --- a/fs/nfsd/nfs4state.c
> > > +++ b/fs/nfsd/nfs4state.c
> > > @@ -425,6 +425,11 @@ static int set_forechannel_maxreqs(struct nfsd4_channel_attrs *fchan)
> > > {
> > > int status = 0, np = fchan->maxreqs * NFSD_PAGES_PER_SLOT;
> > >
> > > + if (fchan->maxreqs < 1)
> > > + return nfserr_inval;
> > > + else if (fchan->maxreqs > NFSD_MAX_SLOTS_PER_SESSION)
> > > + fchan->maxreqs = NFSD_MAX_SLOTS_PER_SESSION;
> > > +
> > > spin_lock(&nfsd_serv->sv_lock);
> >
> > How did this use of sv_lock creep in? Let's remove that before we do
> > anything else....
>
> (But--applied.)
By the way, I just noticed, the caller already does the second of those
two checks; a followup patch should remove that now-superfluous code in
the caller.
--b.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-06-17 21:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-16 1:19 [PATCH 09/44] nfsd41: sanity check client drc maxreqs Benny Halevy
2009-06-17 0:35 ` J. Bruce Fields
2009-06-17 0:44 ` J. Bruce Fields
2009-06-17 21:41 ` J. Bruce Fields
2009-06-17 1:23 ` William A. (Andy) Adamson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox