From 9eb486e08b9b975c87a0e74436b54737d78d65c5 Mon Sep 17 00:00:00 2001 From: Andy Adamson Date: Tue, 16 Jun 2009 04:19:38 +0300 Subject: [PATCH] --- yaml --- r: 153699 b: refs/heads/master c: 5d77ddfbcb062f2617ea79d7a371b4bc78f28417 h: refs/heads/master i: 153697: 52e6fdc63ab1b039bc6167a33bdfb10270ffaa50 153695: f21b08d0e0982051a637c582c7d4e6d1be99e3d4 v: v3 --- [refs] | 2 +- trunk/fs/nfsd/nfs4state.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 070b7880efcf..05236c0c3191 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6c18ba9f5e506b8115b89b1aa7bdc25178f40b0a +refs/heads/master: 5d77ddfbcb062f2617ea79d7a371b4bc78f28417 diff --git a/trunk/fs/nfsd/nfs4state.c b/trunk/fs/nfsd/nfs4state.c index d5caf2a709d2..99570c49add5 100644 --- a/trunk/fs/nfsd/nfs4state.c +++ b/trunk/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;