mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
nfsd41: sanity check client drc maxreqs
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> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
parent
6c18ba9f5e
commit
5d77ddfbcb
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user