All of lore.kernel.org
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: andros@netapp.com
Cc: linux-nfs@vger.kernel.org, pnfs@linux-nfs.org
Subject: Re: [pnfs] [PATCH 3/5] nfsd41: reclaim DRC memory on session free
Date: Mon, 27 Jul 2009 18:57:35 -0400	[thread overview]
Message-ID: <20090727225735.GF4718@fieldses.org> (raw)
In-Reply-To: <20090716141805.GD30477@fieldses.org>

On Thu, Jul 16, 2009 at 10:18:05AM -0400, J. Bruce Fields wrote:
> On Wed, Jun 24, 2009 at 03:37:47PM -0400, andros@netapp.com wrote:
> > From: Andy Adamson <andros@netapp.com>
> > 
> > Signed-off-by: Andy Adamson <andros@netapp.com>
> > ---
> >  fs/nfsd/nfs4state.c |    3 +++
> >  1 files changed, 3 insertions(+), 0 deletions(-)
> > 
> > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> > index b4a536d..991c3cc 100644
> > --- a/fs/nfsd/nfs4state.c
> > +++ b/fs/nfsd/nfs4state.c
> > @@ -583,6 +583,9 @@ free_session(struct kref *kref)
> >  		struct nfsd4_cache_entry *e = &ses->se_slots[i].sl_cache_entry;
> >  		nfsd4_release_respages(e->ce_respages, e->ce_resused);
> >  	}
> > +	spin_lock(&nfsd_drc_lock);
> > +	nfsd_drc_mem_used -= ses->se_fchannel.maxreqs * NFSD_SLOT_CACHE_SIZE;
> > +	spin_unlock(&nfsd_drc_lock);
> >  	kfree(ses);
> 
> This patch has to be combined with the previous one.

I thought this was fixing a bug from the previous patch!  But instead I
see this is a fix for a preexisting bugfix.  So better to move this to
the head of the patch series; applied the following to my for-2.6.32.

Apologies--I've just done this myself and applied the following.  Look
OK?

--b.

commit 0a515ffa6f29e9a0f0f60373576bd4d3d5608ae8
Author: Andy Adamson <andros@netapp.com>
Date:   Mon Jul 27 18:49:05 2009 -0400

    nfsd41: reclaim DRC memory on session free
    
    This fixes a leak which would eventually lock out new clients.
    
    Signed-off-by: Andy Adamson <andros@netapp.com>
    Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 2e6a44e..69bd37e 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -585,6 +585,9 @@ free_session(struct kref *kref)
 		struct nfsd4_cache_entry *e = &ses->se_slots[i].sl_cache_entry;
 		nfsd4_release_respages(e->ce_respages, e->ce_resused);
 	}
+	spin_lock(&nfsd_drc_lock);
+	nfsd_drc_pages_used -= ses->se_fchannel.maxreqs * NFSD_PAGES_PER_SLOT;
+	spin_unlock(&nfsd_drc_lock);
 	kfree(ses);
 }
 

  parent reply	other threads:[~2009-07-27 22:57 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-24 19:37 [PATCH 0/14] NFSv4.1 Server DRC rewrite Version 4 andros
2009-06-24 19:37 ` [PATCH 1/5] nfsd41: use globals for DRC limits andros
2009-06-24 19:37   ` [PATCH 2/5] nfsd41: change from page to memory based drc limits andros
2009-06-24 19:37     ` [PATCH 3/5] nfsd41: reclaim DRC memory on session free andros
2009-06-24 19:37       ` [PATCH 4/5] nfsd41: set the session maximum response size cached andros
2009-06-24 19:37         ` [PATCH 5/5] nfsd41: remove redundant forechannel max requests check andros
2009-06-24 19:37           ` [PATCH 06/14] nfsd41: change check_slot_seqid parameters andros
2009-06-24 19:37             ` [PATCH 07/14] nfsd41: replace create_session DRC with xdr structure andros
2009-06-24 19:37               ` [PATCH 08/14] nfsd41: replace page based DRC with buffer based DRC andros
2009-06-24 19:37                 ` [PATCH 09/14] nfsd41: rename nfsd4_enc_uncached_replay andros
2009-06-24 19:37                   ` [PATCH 10/14] nfsd41: encode replay sequence from the slot values andros
2009-06-24 19:37                     ` [PATCH 11/14] nfsd41: fix nfsd4_replay_cache_entry comments andros
2009-06-24 19:37                       ` [PATCH 12/14] nfsd41: support 16 slots per session andros
2009-06-24 19:37                         ` [PATCH 13/14] nfsd41: add test for failed sequence operation andros
2009-06-24 19:37                           ` [PATCH 14/14] nfsd41: remove redundant failed sequence check andros
2009-07-01 23:09         ` [pnfs] [PATCH 4/5] nfsd41: set the session maximum response sizecached Alexandros Batsakis
2009-07-06 19:27           ` Andy Adamson
2009-07-06 21:48             ` J. Bruce Fields
2009-07-16 14:18       ` [pnfs] [PATCH 3/5] nfsd41: reclaim DRC memory on session free J. Bruce Fields
2009-07-16 15:49         ` William A. (Andy) Adamson
2009-07-27 22:57         ` J. Bruce Fields [this message]
2009-07-31  8:38           ` Andy Adamson
2009-07-16 14:17     ` [pnfs] [PATCH 2/5] nfsd41: change from page to memory based drc limits J. Bruce Fields
2009-07-16 18:50       ` J. Bruce Fields
2009-07-16 14:24     ` J. Bruce Fields
2009-06-28 16:01 ` [pnfs] [PATCH 0/14] NFSv4.1 Server DRC rewrite Version 4 Benny Halevy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090727225735.GF4718@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=andros@netapp.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=pnfs@linux-nfs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.