linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@redhat.com>
To: bfields@fieldses.org, steved@redhat.com
Cc: linux-nfs@vger.kernel.org
Subject: [PATCH v3 0/5] nfsd: overhaul the client name tracking code
Date: Wed, 21 Dec 2011 15:34:51 -0500	[thread overview]
Message-ID: <1324499696-10318-1-git-send-email-jlayton@redhat.com> (raw)

This is the third iteration of this patchset. The main changes since
the last set are fairly minor:

- the new cl_flags field has been merged with the cl_cb_flags field.
  There are only 2 bits being used in cl_cb_flags currently, so it
  made sense not to bloat out the struct with a new field.

- some minor changes to the upcall struct for better alignment (as
  suggested by Benny)

One of the things that Bruce has long had on his wishlist is to replace
the client name tracking code that the kernel uses:

    http://wiki.linux-nfs.org/wiki/index.php/Nfsd4_server_recovery

The existing code manipulates the filesystem directly to track this
info. Not only is that something that makes the VFS maintainers look
askance at knfsd, but it also is unsuitable in a clustered
configuration.

Typically we think of the grace period as a property of the server, but
with a clustered filesystem, we need to consider it as a property of the
cluster as a whole (or of the clustered filesystem). On a cold startup
of the cluster, once any node grants a non-reclaim lock, then no more
reclaim can be allowed on any node. Grace periods must be coordinated
amongst all cluster nodes.

In order to achieve that goal, we need to first allow the client name
"reclaim" to be cluster aware as well. This patchset is a move toward
that goal and covers the initial kernel part of such a change. A
patchset to add a daemon to handle the upcalls will follow.

The goal with this patchset is to replace the existing functionality,
without disturbing the existing code too much. For now, the plan is
to leave the old tracking code in place until it becomes a burden to
maintain. At that point, we'll need to come up with a plan to
transition everyone off of the legacy state tracker.

I think this set is now ready for merge and I'd like to see it go
in for 3.3 if possible. The userspace piece will follow this in
a separate patchset.

Jeff Layton (5):
  nfsd: add nfsd4_client_tracking_ops struct and a way to set it
  sunrpc: create nfsd dir in rpc_pipefs
  nfsd: convert nfs4_client->cl_cb_flags to a generic flags field
  nfsd: add a header describing upcall to nfsdcld
  nfsd: add the infrastructure to handle the cld upcall

 fs/nfsd/nfs4callback.c   |   12 +-
 fs/nfsd/nfs4recover.c    |  439 ++++++++++++++++++++++++++++++++++++++++++++-
 fs/nfsd/nfs4state.c      |   46 ++---
 fs/nfsd/state.h          |   21 ++-
 include/linux/nfsd/cld.h |   56 ++++++
 net/sunrpc/rpc_pipe.c    |    5 +
 6 files changed, 526 insertions(+), 53 deletions(-)
 create mode 100644 include/linux/nfsd/cld.h


             reply	other threads:[~2011-12-21 20:35 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-21 20:34 Jeff Layton [this message]
2011-12-21 20:34 ` [PATCH v3 1/5] nfsd: add nfsd4_client_tracking_ops struct and a way to set it Jeff Layton
2011-12-21 20:34 ` [PATCH v3 2/5] sunrpc: create nfsd dir in rpc_pipefs Jeff Layton
2011-12-21 20:34 ` [PATCH v3 3/5] nfsd: convert nfs4_client->cl_cb_flags to a generic flags field Jeff Layton
2011-12-21 20:34 ` [PATCH v3 4/5] nfsd: add a header describing upcall to nfsdcld Jeff Layton
2011-12-21 20:45   ` Chuck Lever
2011-12-21 21:33     ` Jeff Layton
2011-12-21 21:37       ` Chuck Lever
2011-12-21 21:48         ` Jeff Layton
2011-12-21 21:59           ` Jeff Layton
2011-12-21 22:04             ` Peter Staubach
2011-12-21 22:21               ` Chuck Lever
2011-12-21 22:31                 ` Peter Staubach
2011-12-21 22:50                   ` Chuck Lever
2011-12-21 22:27               ` Jeff Layton
2011-12-21 22:33                 ` Peter Staubach
2011-12-22  1:04                   ` Jeff Layton
2011-12-22 13:07         ` Jeff Layton
2011-12-22 15:20           ` Jim Rees
2011-12-22 15:23             ` Jim Rees
2011-12-22 18:07             ` J. Bruce Fields
2011-12-21 20:34 ` [PATCH v3 5/5] nfsd: add the infrastructure to handle the cld upcall 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=1324499696-10318-1-git-send-email-jlayton@redhat.com \
    --to=jlayton@redhat.com \
    --cc=bfields@fieldses.org \
    --cc=linux-nfs@vger.kernel.org \
    --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).