linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: Scott Mayhew <smayhew@redhat.com>
Cc: steved@redhat.com, jlayton@kernel.org, linux-nfs@vger.kernel.org
Subject: Re: [nfs-utils PATCH RFC v3 0/8] restore nfsdcld
Date: Tue, 16 Apr 2019 12:46:45 -0400	[thread overview]
Message-ID: <20190416164645.GC3430@fieldses.org> (raw)
In-Reply-To: <20190326220730.3763-1-smayhew@redhat.com>

I've really only skimmed the changelogs and documentation and such, but
that all looks good to me, and I'm still expecting to commit the
kernel-side patches for 5.2, so I'm favor of these nfs-utils patches
instead, as long as they look good to Steve.

--b.

On Tue, Mar 26, 2019 at 06:07:22PM -0400, Scott Mayhew wrote:
> When nfsdcld was released, it was quickly deprecated in favor of the
> nfsdcltrack usermodehelper, so as to not require another running daemon.
> The nfsdcld code was removed from nfs-utils in 2012.  That prevents
> NFSv4 clients from reclaiming locks from nfsd's running in containers,
> since neither nfsdcltrack nor the legacy client tracking code work in
> containers.  These patches restore the nfsdcld code.
> 
> These patches are intended to go alongside some kernel patches that
> introduce an enhancement that allows nfsd to "slurp" up the client
> records during client tracking initialization and store them internally
> in hash table.  This enables nfsd to check whether an NFSv4 client is
> allowed to reclaim without having to do an upcall to nfsdcld.  It also
> allows nfsd to decide to end the v4 grace period early if the number of
> RECLAIM_COMPLETE operations it has received from "known" clients is
> equal to the number of entries in the hash table.  It also allows nfsd
> to skip the v4 grace period altogether if it knows there are no clients
> allowed to reclaim.
> 
> The new nfsdcld code will work with older kernels, however in that case
> there is no ability for nfsd to exit the grace period early or skip the
> grace period altogether.
> 
> v3:
> - removed PathExists restriction from the nfsdcld.service file
> - added the ability to do a one-time upgrade from older client tracking
>   methods (i.e. nfsdcltrack and/or the legacy v4recovery dir)
> v2:
> - Use sqlite3_column_int64() instead of sqlite3_column_int() to query
>   the current & recovery values from the grace table
> - Uncommented the nfsdcld section header in nfs.conf
> 
> Scott Mayhew (8):
>   Revert "nfsdcltrack: remove the nfsdcld daemon"
>   nfsdcld: move nfsdcld to its own directory
>   nfsdcld: a few enhancements
>   nfsdcld: remove some unused functions
>   nfsdcld: the -p option should specify the rpc_pipefs mountpoint
>   nfsdcld: add /etc/nfs.conf support
>   systemd: add a unit file for nfsdcld
>   nfsdcld: add a facility for migrating from older client tracking
>     methods
> 
>  .gitignore                   |    1 +
>  configure.ac                 |   23 +
>  nfs.conf                     |    4 +
>  support/include/cld.h        |    1 +
>  systemd/nfs-server.service   |    2 +
>  systemd/nfsdcld.service      |   10 +
>  utils/Makefile.am            |    4 +
>  utils/nfsdcld/Makefile.am    |   19 +
>  utils/nfsdcld/cld-internal.h |   33 +
>  utils/nfsdcld/legacy.c       |  180 ++++++
>  utils/nfsdcld/legacy.h       |   24 +
>  utils/nfsdcld/nfsdcld.c      |  774 ++++++++++++++++++++++++
>  utils/nfsdcld/nfsdcld.man    |  199 ++++++
>  utils/nfsdcld/sqlite.c       | 1109 ++++++++++++++++++++++++++++++++++
>  utils/nfsdcld/sqlite.h       |   35 ++
>  15 files changed, 2418 insertions(+)
>  create mode 100644 systemd/nfsdcld.service
>  create mode 100644 utils/nfsdcld/Makefile.am
>  create mode 100644 utils/nfsdcld/cld-internal.h
>  create mode 100644 utils/nfsdcld/legacy.c
>  create mode 100644 utils/nfsdcld/legacy.h
>  create mode 100644 utils/nfsdcld/nfsdcld.c
>  create mode 100644 utils/nfsdcld/nfsdcld.man
>  create mode 100644 utils/nfsdcld/sqlite.c
>  create mode 100644 utils/nfsdcld/sqlite.h
> 
> -- 
> 2.17.2

  parent reply	other threads:[~2019-04-16 16:46 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-26 22:07 [nfs-utils PATCH RFC v3 0/8] restore nfsdcld Scott Mayhew
2019-03-26 22:07 ` [nfs-utils PATCH RFC v3 1/8] Revert "nfsdcltrack: remove the nfsdcld daemon" Scott Mayhew
2019-03-26 22:07 ` [nfs-utils PATCH RFC v3 2/8] nfsdcld: move nfsdcld to its own directory Scott Mayhew
2019-03-26 22:07 ` [nfs-utils PATCH RFC v3 3/8] nfsdcld: a few enhancements Scott Mayhew
2019-03-26 22:07 ` [nfs-utils PATCH RFC v3 4/8] nfsdcld: remove some unused functions Scott Mayhew
2019-03-26 22:07 ` [nfs-utils PATCH RFC v3 5/8] nfsdcld: the -p option should specify the rpc_pipefs mountpoint Scott Mayhew
2019-03-26 22:07 ` [nfs-utils PATCH RFC v3 6/8] nfsdcld: add /etc/nfs.conf support Scott Mayhew
2020-04-02  3:23   ` Yongcheng Yang
2019-03-26 22:07 ` [nfs-utils PATCH RFC v3 7/8] systemd: add a unit file for nfsdcld Scott Mayhew
2019-03-26 22:07 ` [nfs-utils PATCH RFC v3 8/8] nfsdcld: add a facility for migrating from older client tracking methods Scott Mayhew
2019-04-16 16:46 ` J. Bruce Fields [this message]
2019-04-16 18:23   ` [nfs-utils PATCH RFC v3 0/8] restore nfsdcld Steve Dickson

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=20190416164645.GC3430@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=jlayton@kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=smayhew@redhat.com \
    --cc=steved@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).