Commit b101ebbc authored by Andy Adamson's avatar Andy Adamson Committed by J. Bruce Fields
Browse files

nfsd41: minor set_forechannel_maxreqs cleanup

parent be98d1bb
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -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;
}

/*