public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Chris Vine <chris-TF6qbakwsgc2epGFuHBODCp2UmYkHbXO@public.gmane.org>
To: Jeff Layton <jlayton@redhat.com>
Cc: bfields@fieldses.org, linux-nfs@vger.kernel.org
Subject: Re: [PATCH] nfsd: just keep single lockd reference for nfsd
Date: Fri, 18 Jun 2010 15:18:08 +0100	[thread overview]
Message-ID: <20100618151808.6e40a0ca@boulder.homenet> (raw)
In-Reply-To: <1276858940-15499-1-git-send-email-jlayton@redhat.com>

On Fri, 18 Jun 2010 07:02:20 -0400
Jeff Layton <jlayton@redhat.com> wrote:

> 
> This patch should replace the other patches that I proposed to make
> sure that each sv_permsock entry holds a lockd refrence.
> 
> Right now, nfsd keeps a lockd reference for each socket that it has
> open. This is unnecessary and complicates the error handling on
> startup and shutdown. Change it to just do a lockd_up when creating
> the nfsd_serv and just do a single lockd_down when taking down the
> last nfsd thread.
> 
> This patch also changes the error handling in nfsd_create_serv a
> bit too. There doesn't seem to be any need to reset the nfssvc_boot
> time if the nfsd startup failed.
> 
> Note though that this does change the user-visible behavior slightly.
> Today when someone writes a text socktype and port to the portlist
> file prior to starting nfsd, lockd is not started when nfsd threads
> are brought up. With this change, it will be started any time that
> the nfsd_serv is created. I'm making the assumption that that's not a
> problem. If it is then we'll need to take a different approach to
> fixing this.

[snip]

With this (and all the other patches in nfsd-error) applied, this
eliminates the kernel bug/oops.

However, on my netbook nfsd now always hangs when starting up, no matter
how much in advance I start portmap.  (The race condition has been
traded for a hang in very case.)

dmesg reports this:

NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
NFSD: starting 90-second grace period
[... hang here... ]
[... continuing after killall rpc.nfsd ...]
svc: failed to register lockdv1 RPC service (errno 512).
lockd_up: makesock failed, error=-512

portmap is definitely running.  'ps axc | grep rpc' gives:

 1767 ?        Ss     0:00 rpc.portmap
 1771 ?        Ss     0:00 rpc.statd
 2412 ?        S      0:00 rpciod/0
 2413 ?        S      0:00 rpciod/1
 3075 ?        Ss     0:00 rpc.rquotad

Chris



  reply	other threads:[~2010-06-18 14:18 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-18 11:02 [PATCH] nfsd: just keep single lockd reference for nfsd Jeff Layton
2010-06-18 14:18 ` Chris Vine [this message]
     [not found]   ` <20100618151808.6e40a0ca-PlFwYbz7hoIyinQH9hAyzg@public.gmane.org>
2010-06-18 14:30     ` Jeff Layton
     [not found]       ` <20100618103042.080aa597-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2010-06-18 15:04         ` Chris Vine
     [not found]           ` <20100618160411.14d65b2b-PlFwYbz7hoIyinQH9hAyzg@public.gmane.org>
2010-06-18 15:11             ` Jeff Layton
     [not found]               ` <20100618111132.20fb518a-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2010-06-18 22:45                 ` Chris Vine

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=20100618151808.6e40a0ca@boulder.homenet \
    --to=chris-tf6qbakwsgc2epgfuhbodcp2umykhbxo@public.gmane.org \
    --cc=bfields@fieldses.org \
    --cc=jlayton@redhat.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox