From: "J. Bruce Fields" <bfields@fieldses.org>
To: Wendy Cheng <wcheng@redhat.com>
Cc: NFS list <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH] Fix NLM reference count panic
Date: Fri, 4 Jan 2008 18:24:22 -0500 [thread overview]
Message-ID: <20080104232422.GF14827@fieldses.org> (raw)
In-Reply-To: <477EB7D1.9030303@redhat.com>
On Fri, Jan 04, 2008 at 05:48:49PM -0500, Wendy Cheng wrote:
> This fixes the incorrect fclose call inside nlm_traverse_files() where
> a posix lock could still be held by NFS client. Problem was found in a
> kernel panic inside locks_remove_flock() (fs/locks.c:2034) as part of
> the fclose call due to NFS-NLM locks still hanging on inode->i_flock list.
>
> Also see: http://people.redhat.com/wcheng/Patches/NFS/NLM/001.txt
Next time it'd be best just to include that into the referred-to text
into the message.
> svcsubs.c | 3 +--
> 1 files changed, 1 insertion(+), 2 deletions(-)
>
> --- gfs2-nmw/fs/lockd/svcsubs.c 2007-04-10 11:59:09.000000000 -0400
> +++ linux/fs/lockd/svcsubs.c 2007-04-18 10:01:23.000000000 -0400
> @@ -250,8 +250,7 @@ nlm_traverse_files(struct nlm_host *host
> mutex_lock(&nlm_file_mutex);
> file->f_count--;
> /* No more references to this file. Let go of it. */
> - if (list_empty(&file->f_blocks) && !file->f_locks
> - && !file->f_shares && !file->f_count) {
> + if (!nlm_file_inuse(file)) {
> hlist_del(&file->f_list);
> nlmsvc_ops->fclose(file->f_file);
> kfree(file);
This just replaces the file->f_locks check by a search of the inode's
lock list.
What confuses me here is that the nlm_inspect_file() call just above
already did that search, and set file->f_locks accordingly. The only
difference is that now we've acquired the nlm_file_mutex. I don't
understand yet how that makes a difference.
--b.
next prev parent reply other threads:[~2008-01-04 23:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-04 22:48 [PATCH] Fix NLM reference count panic Wendy Cheng
2008-01-04 22:58 ` Wendy Cheng
2008-01-04 23:24 ` J. Bruce Fields [this message]
2008-01-05 5:03 ` Wendy Cheng
2008-01-05 6:05 ` J. Bruce Fields
2008-01-05 17:46 ` Wendy Cheng
2008-01-05 17:36 ` J. Bruce Fields
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=20080104232422.GF14827@fieldses.org \
--to=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
--cc=wcheng@redhat.com \
/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.