From: Christoph Hellwig <hch@infradead.org>
To: Jeff Layton <jlayton@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>,
akpm@linux-foundation.org, neilb@suse.de,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 6/6] NLM: Add reference counting to lockd
Date: Wed, 9 Jan 2008 18:48:14 +0000 [thread overview]
Message-ID: <20080109184814.GA1562@infradead.org> (raw)
In-Reply-To: <20080109133621.72f611ec-RtJpwOs3+0O+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
On Wed, Jan 09, 2008 at 01:36:21PM -0500, Jeff Layton wrote:
> I don't see a good alternative though. We need to be able to drop the
> and check the refcount in nlmsvc_unlink_block. That function is called
> from lockd, and we can't have lockd call kthread_stop on itself.
>
> If you see a better way to do this, I'm certainly open to suggestions.
>
> I'll note that my first stab at fixing this problem was to change the
> svc_wake_up() call in the rpc callback to a routine to wake up any
> lockd on the box that happened to be up. That sidesteps this entire
> problem of having to make sure lockd stays up. If we decided that was
> the right approach we could dump the last patch in this series
> altogether.
>
> That said there could be other use after free bugs lurking in the lockd
> code so maybe keeping lockd up until nlm_blocked is empty is the right
> thing to do.
What about just not exiting from lockd as long as nlm_blocked is not
empty? lockd_down still simply calls kthread_stop, but lockd only
honours it when nlm_blocked is empty?
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@infradead.org>
To: Jeff Layton <jlayton@redhat.com>
Cc: Christoph Hellwig <hch@infradead.org>,
akpm@linux-foundation.org, neilb@suse.de,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 6/6] NLM: Add reference counting to lockd
Date: Wed, 9 Jan 2008 18:48:14 +0000 [thread overview]
Message-ID: <20080109184814.GA1562@infradead.org> (raw)
In-Reply-To: <20080109133621.72f611ec@tleilax.poochiereds.net>
On Wed, Jan 09, 2008 at 01:36:21PM -0500, Jeff Layton wrote:
> I don't see a good alternative though. We need to be able to drop the
> and check the refcount in nlmsvc_unlink_block. That function is called
> from lockd, and we can't have lockd call kthread_stop on itself.
>
> If you see a better way to do this, I'm certainly open to suggestions.
>
> I'll note that my first stab at fixing this problem was to change the
> svc_wake_up() call in the rpc callback to a routine to wake up any
> lockd on the box that happened to be up. That sidesteps this entire
> problem of having to make sure lockd stays up. If we decided that was
> the right approach we could dump the last patch in this series
> altogether.
>
> That said there could be other use after free bugs lurking in the lockd
> code so maybe keeping lockd up until nlm_blocked is empty is the right
> thing to do.
What about just not exiting from lockd as long as nlm_blocked is not
empty? lockd_down still simply calls kthread_stop, but lockd only
honours it when nlm_blocked is empty?
next prev parent reply other threads:[~2008-01-09 18:48 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-08 19:33 [PATCH 0/6] Intro: convert lockd to kthread and fix use-after-free (try #6) Jeff Layton
2008-01-08 19:33 ` [PATCH 1/6] SUNRPC: spin svc_rqst initialization to its own function Jeff Layton
2008-01-08 19:33 ` [PATCH 2/6] SUNRPC: export svc_sock_update_bufs Jeff Layton
2008-01-08 19:33 ` [PATCH 3/6] NLM: Initialize completion variable in lockd_up Jeff Layton
2008-01-08 19:33 ` [PATCH 4/6] NLM: Have lockd call try_to_freeze Jeff Layton
2008-01-08 19:33 ` [PATCH 5/6] NLM: Convert lockd to use kthreads Jeff Layton
2008-01-08 19:33 ` [PATCH 6/6] NLM: Add reference counting to lockd Jeff Layton
2008-01-09 17:47 ` Christoph Hellwig
2008-01-09 18:36 ` Jeff Layton
[not found] ` <20080109133621.72f611ec-RtJpwOs3+0O+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2008-01-09 18:48 ` Christoph Hellwig [this message]
2008-01-09 18:48 ` Christoph Hellwig
2008-01-09 18:59 ` Jeff Layton
2008-01-10 3:29 ` Neil Brown
[not found] ` <18309.37138.207880.305870-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2008-01-10 11:58 ` Jeff Layton
2008-01-10 11:58 ` Jeff Layton
2008-01-09 17:45 ` [PATCH 5/6] NLM: Convert lockd to use kthreads Christoph Hellwig
2008-01-09 18:08 ` Jeff Layton
2008-01-09 17:35 ` [PATCH 3/6] NLM: Initialize completion variable in lockd_up Christoph Hellwig
2008-01-09 18:05 ` Jeff Layton
[not found] ` <20080109130554.550ccde5-RtJpwOs3+0O+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2008-01-09 18:14 ` Christoph Hellwig
2008-01-09 18:14 ` Christoph Hellwig
2008-01-13 13:27 ` Jeff Layton
[not found] ` <20080113082718.396890f7-RtJpwOs3+0O+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2008-01-13 18:17 ` Christoph Hellwig
2008-01-13 18:17 ` Christoph Hellwig
2008-01-13 19:12 ` J. Bruce Fields
2008-01-14 14:24 ` Jeff Layton
[not found] ` <20080114092454.66a41c29-RtJpwOs3+0O+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2008-01-14 14:25 ` Christoph Hellwig
2008-01-14 14:25 ` Christoph Hellwig
2008-03-15 3:44 ` Mike Snitzer
[not found] ` <170fa0d20803142044i3e4d134fq5b287134248a113f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-03-15 6:34 ` Christoph Hellwig
2008-03-15 6:34 ` Christoph Hellwig
-- strict thread matches above, loose matches on Subject: below --
2008-01-05 12:02 [PATCH 0/6] Intro: convert lockd to kthread and fix use-after-free (try #5) Jeff Layton
2008-01-05 12:02 ` [PATCH 1/6] SUNRPC: spin svc_rqst initialization to its own function Jeff Layton
2008-01-05 12:02 ` [PATCH 2/6] SUNRPC: export svc_sock_update_bufs Jeff Layton
2008-01-05 12:02 ` [PATCH 3/6] NLM: Initialize completion variable in lockd_up Jeff Layton
2008-01-05 12:02 ` [PATCH 4/6] NLM: Have lockd call try_to_freeze Jeff Layton
2008-01-05 12:02 ` [PATCH 5/6] NLM: Convert lockd to use kthreads Jeff Layton
2008-01-05 12:02 ` [PATCH 6/6] NLM: Add reference counting to lockd Jeff Layton
2008-01-08 6:46 ` Neil Brown
[not found] ` <18307.7241.831689.998668-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2008-01-08 13:26 ` Jeff Layton
2008-01-08 13:26 ` Jeff Layton
[not found] ` <20080108082603.089718fc-RtJpwOs3+0O+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2008-01-08 15:52 ` Wendy Cheng
2008-01-08 15:52 ` Wendy Cheng
2008-01-08 16:13 ` Jeff Layton
2008-01-08 16:13 ` Peter Staubach
2008-01-08 16:13 ` Peter Staubach
2007-12-21 15:28 [PATCH 0/6] Intro: convert lockd to kthread and fix use-after-free (try #4) Jeff Layton
2007-12-21 15:28 ` [PATCH 1/6] SUNRPC: spin svc_rqst initialization to its own function Jeff Layton
2007-12-21 15:28 ` [PATCH 2/6] SUNRPC: export svc_sock_update_bufs Jeff Layton
2007-12-21 15:28 ` [PATCH 3/6] NLM: Initialize completion variable in lockd_up Jeff Layton
2007-12-21 15:28 ` [PATCH 4/6] NLM: Have lockd call try_to_freeze Jeff Layton
2007-12-21 15:28 ` [PATCH 5/6] NLM: Convert lockd to use kthreads Jeff Layton
2007-12-21 15:28 ` [PATCH 6/6] NLM: Add reference counting to lockd Jeff Layton
2007-12-21 16:43 ` Chuck Lever
2007-12-21 17:02 ` Jeff Layton
[not found] ` <20071221120215.03beada0-RtJpwOs3+0O+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2007-12-21 17:51 ` Chuck Lever
2007-12-21 18:25 ` Jeff Layton
2007-12-21 19:54 ` Jeff Layton
[not found] ` <20071221145456.122174d0-RtJpwOs3+0O+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2007-12-21 20:25 ` Chuck Lever
2007-12-21 20:46 ` Jeff Layton
2007-12-13 20:40 [PATCH 0/6] Intro: convert lockd to kthread and fix use-after-free Jeff Layton
2007-12-13 20:40 ` [PATCH 1/6] SUNRPC: Allow svc_pool_map_set_cpumask to work with any task Jeff Layton
2007-12-13 20:40 ` [PATCH 2/6] SUNRPC: Break up __svc_create_thread and make svc_create_kthread Jeff Layton
2007-12-13 20:40 ` [PATCH 3/6] NLM: Initialize completion variable in lockd_up Jeff Layton
2007-12-13 20:40 ` [PATCH 4/6] NLM: Have lockd call try_to_freeze Jeff Layton
2007-12-13 20:40 ` [PATCH 5/6] NLM: Convert lockd to use kthreads Jeff Layton
2007-12-13 20:40 ` [PATCH 6/6] NLM: Add reference counting to lockd Jeff Layton
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=20080109184814.GA1562@infradead.org \
--to=hch@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=jlayton@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.de \
/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.