Loading fs/nfsd/nfs4state.c +7 −8 Original line number Diff line number Diff line Loading @@ -423,26 +423,25 @@ gen_sessionid(struct nfsd4_session *ses) */ static int set_forechannel_maxreqs(struct nfsd4_channel_attrs *fchan) { int status = 0, np = fchan->maxreqs * NFSD_PAGES_PER_SLOT; int np; if (fchan->maxreqs < 1) return nfserr_inval; else if (fchan->maxreqs > NFSD_MAX_SLOTS_PER_SESSION) fchan->maxreqs = NFSD_MAX_SLOTS_PER_SESSION; np = fchan->maxreqs * NFSD_PAGES_PER_SLOT; spin_lock(&nfsd_drc_lock); if (np + nfsd_drc_pages_used > nfsd_drc_max_pages) np = nfsd_drc_max_pages - nfsd_drc_pages_used; nfsd_drc_pages_used += np; spin_unlock(&nfsd_drc_lock); if (np <= 0) { status = nfserr_resource; fchan->maxreqs = 0; } else fchan->maxreqs = np / NFSD_PAGES_PER_SLOT; return status; if (fchan->maxreqs == 0) return nfserr_resource; return 0; } /* Loading Loading
fs/nfsd/nfs4state.c +7 −8 Original line number Diff line number Diff line Loading @@ -423,26 +423,25 @@ gen_sessionid(struct nfsd4_session *ses) */ static int set_forechannel_maxreqs(struct nfsd4_channel_attrs *fchan) { int status = 0, np = fchan->maxreqs * NFSD_PAGES_PER_SLOT; int np; if (fchan->maxreqs < 1) return nfserr_inval; else if (fchan->maxreqs > NFSD_MAX_SLOTS_PER_SESSION) fchan->maxreqs = NFSD_MAX_SLOTS_PER_SESSION; np = fchan->maxreqs * NFSD_PAGES_PER_SLOT; spin_lock(&nfsd_drc_lock); if (np + nfsd_drc_pages_used > nfsd_drc_max_pages) np = nfsd_drc_max_pages - nfsd_drc_pages_used; nfsd_drc_pages_used += np; spin_unlock(&nfsd_drc_lock); if (np <= 0) { status = nfserr_resource; fchan->maxreqs = 0; } else fchan->maxreqs = np / NFSD_PAGES_PER_SLOT; return status; if (fchan->maxreqs == 0) return nfserr_resource; return 0; } /* Loading