All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bryan Schumaker <bjschuma@netapp.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH] NFSD: Only reinitilize the recall_lru list under the recall lock
Date: Wed, 14 Dec 2011 08:42:18 -0500	[thread overview]
Message-ID: <4EE8A7BA.6050406@netapp.com> (raw)
In-Reply-To: <20111213221209.GA30904@fieldses.org>

On Tue Dec 13 17:12:09 2011, J. Bruce Fields wrote:
> On Tue, Dec 13, 2011 at 04:35:58PM -0500, bjschuma@netapp.com wrote:
>> From: Bryan Schumaker <bjschuma@netapp.com>
>>
>> unhash_delegation() will grab the recall lock before calling
>> list_del_init() in each of these places.  This patch removes the
>> redundant calls.
>
> Looks right, thanks.  (How did you happen across this?)

I was looking over the fault injection stuff to see if I can figure out 
where an occasional oops was coming from.  It seems to happen when I 
forget delegations, so I was looking at how other functions release 
delegations to see if there was something I missed.  The oops doesn't 
happen often enough for me to know if this patch fixes it yet, though.

- Bryan
>
> --b.
>
>>
>> Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
>> ---
>>  fs/nfsd/nfs4state.c |    3 ---
>>  1 files changed, 0 insertions(+), 3 deletions(-)
>>
>> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
>> index 6ab6779..43d5c22 100644
>> --- a/fs/nfsd/nfs4state.c
>> +++ b/fs/nfsd/nfs4state.c
>> @@ -1058,7 +1058,6 @@ expire_client(struct nfs4_client *clp)
>>  	spin_unlock(&recall_lock);
>>  	while (!list_empty(&reaplist)) {
>>  		dp = list_entry(reaplist.next, struct nfs4_delegation, dl_recall_lru);
>> -		list_del_init(&dp->dl_recall_lru);
>>  		unhash_delegation(dp);
>>  	}
>>  	while (!list_empty(&clp->cl_openowners)) {
>> @@ -3125,7 +3124,6 @@ nfs4_laundromat(void)
>>  	spin_unlock(&recall_lock);
>>  	list_for_each_safe(pos, next, &reaplist) {
>>  		dp = list_entry (pos, struct nfs4_delegation, dl_recall_lru);
>> -		list_del_init(&dp->dl_recall_lru);
>>  		unhash_delegation(dp);
>>  	}
>>  	test_val = nfsd4_lease;
>> @@ -4667,7 +4665,6 @@ __nfs4_state_shutdown(void)
>>  	spin_unlock(&recall_lock);
>>  	list_for_each_safe(pos, next, &reaplist) {
>>  		dp = list_entry (pos, struct nfs4_delegation, dl_recall_lru);
>> -		list_del_init(&dp->dl_recall_lru);
>>  		unhash_delegation(dp);
>>  	}
>>  
>> -- 
>> 1.7.8
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



  reply	other threads:[~2011-12-14 13:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-13 21:35 [PATCH] NFSD: Only reinitilize the recall_lru list under the recall lock bjschuma
2011-12-13 22:12 ` J. Bruce Fields
2011-12-14 13:42   ` Bryan Schumaker [this message]
2011-12-14 14:07     ` J. Bruce Fields
2011-12-14 14:33       ` Bryan Schumaker
2011-12-14 16:35         ` Casey Bodley
2011-12-14 16:56           ` Bryan Schumaker

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=4EE8A7BA.6050406@netapp.com \
    --to=bjschuma@netapp.com \
    --cc=bfields@fieldses.org \
    --cc=linux-nfs@vger.kernel.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.