Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Sep 2012 17:32:44 -0400 (EDT)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        FS List <freebsd-fs@freebsd.org>
Subject:   Re: testing/review of atomic export update patch
Message-ID:  <1777840817.743780.1347917564789.JavaMail.root@erie.cs.uoguelph.ca>
In-Reply-To: <20120917122325.GR37286@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
Konstantin Belousov wrote:
> On Sun, Sep 16, 2012 at 05:41:25PM -0400, Rick Macklem wrote:
> > Hi,
> >
> > There is a simple patch at:
> >   http://people.freebsd.org/~rmacklem/atomic-export.patch
> > that can be applied to a kernel + mountd, so that the new
> > nfsd can be suspended by mountd while the exports are being
> > reloaded. It adds a new "-S" flag to mountd to enable this.
> > (This avoids the long standing bug where clients receive ESTALE
> >  replies to RPCs while mountd is reloading exports.)
> 
> This looks simple, but also somewhat worrisome. What would happen
> if the mountd crashes after nfsd suspension is requested, but before
> resume was performed ?
> 
> Might be, mountd should check for suspended nfsd on start and
> unsuspend
> it, if some flag is specified ?
Well, I think that happens with the patch as it stands.

suspend is done if the "-S" option is specified, but that is a no op
if it is already suspended. The resume is done no matter what flags
are provided, so mountd will always try and do a "resume".
--> get_exportlist() is always called when mountd is started up and
    it does the resume unconditionally when it completes.
    If mountd repeatedly crashes before completing get_exportlist()
    when it is started up, the exports will be all messed up, so
    having the nfsd threads suspended doesn't seem so bad for this
    case (which hopefully never happens;-).

Both suspend and resume are just no ops for unpatched kernels.

Maybe the comment in front of "resume" should explicitly explain
this, instead of saying resume is harmless to do under all conditions?

Thanks for looking at it, rick




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1777840817.743780.1347917564789.JavaMail.root>