From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Andy Adamson <andros@netapp.com>,
Trond Myklebust <Trond.Myklebust@netapp.com>
Subject: [ 14/19] NFSv4.1 end back channel session draining
Date: Thu, 11 Jul 2013 15:01:31 -0700 [thread overview]
Message-ID: <20130711214832.250774896@linuxfoundation.org> (raw)
In-Reply-To: <20130711214830.611455274@linuxfoundation.org>
3.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Andy Adamson <andros@netapp.com>
commit 62f288a02f97bd9f6b2361a6fff709729fe9e110 upstream.
We need to ensure that we clear NFS4_SLOT_TBL_DRAINING on the back
channel when we're done recovering the session.
Regression introduced by commit 774d5f14e (NFSv4.1 Fix a pNFS session
draining deadlock)
Signed-off-by: Andy Adamson <andros@netapp.com>
[Trond: Changed order to start back-channel first. Minor code cleanup]
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/nfs/nfs4state.c | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -228,19 +228,8 @@ static int nfs41_setup_state_renewal(str
return status;
}
-/*
- * Back channel returns NFS4ERR_DELAY for new requests when
- * NFS4_SESSION_DRAINING is set so there is no work to be done when draining
- * is ended.
- */
-static void nfs4_end_drain_session(struct nfs_client *clp)
+static void nfs4_end_drain_slot_table(struct nfs4_slot_table *tbl)
{
- struct nfs4_session *ses = clp->cl_session;
- struct nfs4_slot_table *tbl;
-
- if (ses == NULL)
- return;
- tbl = &ses->fc_slot_table;
if (test_and_clear_bit(NFS4_SLOT_TBL_DRAINING, &tbl->slot_tbl_state)) {
spin_lock(&tbl->slot_tbl_lock);
nfs41_wake_slot_table(tbl);
@@ -248,6 +237,16 @@ static void nfs4_end_drain_session(struc
}
}
+static void nfs4_end_drain_session(struct nfs_client *clp)
+{
+ struct nfs4_session *ses = clp->cl_session;
+
+ if (ses != NULL) {
+ nfs4_end_drain_slot_table(&ses->bc_slot_table);
+ nfs4_end_drain_slot_table(&ses->fc_slot_table);
+ }
+}
+
/*
* Signal state manager thread if session fore channel is drained
*/
next prev parent reply other threads:[~2013-07-11 22:02 UTC|newest]
Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-11 22:01 [ 00/19] 3.10.1-stable review Greg Kroah-Hartman
2013-07-11 22:01 ` [ 01/19] libceph: Fix NULL pointer dereference in auth client code Greg Kroah-Hartman
2013-07-11 22:01 ` [ 02/19] ceph: fix sleeping function called from invalid context Greg Kroah-Hartman
2013-07-11 22:01 ` [ 03/19] libceph: fix invalid unsigned->signed conversion for timespec encoding Greg Kroah-Hartman
2013-07-11 22:01 ` [ 04/19] drivers/cdrom/cdrom.c: use kzalloc() for failing hardware Greg Kroah-Hartman
2013-07-11 22:01 ` [ 05/19] module: do percpu allocation after uniqueness check. No, really! Greg Kroah-Hartman
2013-07-11 22:01 ` [ 06/19] charger-manager: Ensure event is not used as format string Greg Kroah-Hartman
2013-07-11 22:01 ` [ 07/19] hpfs: better test for errors Greg Kroah-Hartman
2013-07-11 22:01 ` [ 08/19] block: do not pass disk names as format strings Greg Kroah-Hartman
2013-07-11 22:01 ` [ 09/19] crypto: sanitize argument for format string Greg Kroah-Hartman
2013-07-11 22:01 ` Greg Kroah-Hartman
2013-07-11 22:01 ` [ 10/19] MAINTAINERS: add stable_kernel_rules.txt to stable maintainer information Greg Kroah-Hartman
2013-07-11 22:01 ` [ 11/19] futex: Take hugepages into account when generating futex_key Greg Kroah-Hartman
2013-07-11 22:01 ` [ 12/19] tty: Reset itty for other pty Greg Kroah-Hartman
2013-07-11 22:01 ` [ 13/19] Revert "serial: 8250_pci: add support for another kind of NetMos Technology PCI 9835 Multi-I/O Controller" Greg Kroah-Hartman
2013-07-11 22:01 ` Greg Kroah-Hartman [this message]
2013-07-11 22:01 ` [ 15/19] nfsd4: fix decoding of compounds across page boundaries Greg Kroah-Hartman
2013-07-11 22:01 ` [ 16/19] KVM: VMX: mark unusable segment as nonpresent Greg Kroah-Hartman
2013-07-11 22:01 ` [ 17/19] SCSI: sd: Fix parsing of temporary cache mode prefix Greg Kroah-Hartman
2013-07-11 22:01 ` [ 18/19] cpufreq: Fix cpufreq regression after suspend/resume Greg Kroah-Hartman
2013-07-11 22:01 ` [ 19/19] Revert "memcg: avoid dangling reference count in creation failure" Greg Kroah-Hartman
2013-07-11 22:14 ` [ 00/19] 3.10.1-stable review Josh Boyer
2013-07-14 22:54 ` Benjamin Herrenschmidt
2013-07-11 22:29 ` Dave Jones
2013-07-11 22:44 ` Greg Kroah-Hartman
2013-07-12 1:51 ` Steven Rostedt
2013-07-12 14:15 ` Guenter Roeck
2013-07-12 15:22 ` Linus Torvalds
2013-07-12 15:47 ` Steven Rostedt
2013-07-12 15:55 ` Linus Torvalds
2013-07-12 16:17 ` Ingo Molnar
2013-07-12 16:35 ` Josh Boyer
2013-07-12 16:36 ` Josh Boyer
2013-07-12 17:05 ` Greg Kroah-Hartman
2013-07-14 22:40 ` Benjamin Herrenschmidt
2013-07-12 16:48 ` Steven Rostedt
2013-07-12 17:31 ` Guenter Roeck
2013-07-12 17:50 ` Linus Torvalds
2013-07-12 18:11 ` Guenter Roeck
2013-07-12 19:35 ` Theodore Ts'o
2013-07-12 19:49 ` Steven Rostedt
2013-07-12 19:55 ` Willy Tarreau
2013-07-12 20:19 ` Dave Jones
2013-07-12 20:28 ` Steven Rostedt
2013-07-12 20:31 ` Steven Rostedt
2013-07-12 21:19 ` Justin M. Forbes
2013-07-13 0:47 ` Jochen Striepe
2013-07-13 11:11 ` Steven Rostedt
2013-07-13 15:10 ` Dave Jones
2013-07-13 15:54 ` Steven Rostedt
2013-07-12 19:50 ` Willy Tarreau
2013-07-12 20:47 ` Theodore Ts'o
2013-07-12 21:02 ` Guenter Roeck
2013-07-13 6:22 ` Greg Kroah-Hartman
2013-07-13 6:36 ` Willy Tarreau
2013-07-13 6:48 ` Greg Kroah-Hartman
2013-07-13 7:12 ` Willy Tarreau
2013-07-15 4:12 ` Li Zefan
2013-07-15 4:43 ` Willy Tarreau
2013-07-13 11:42 ` Theodore Ts'o
2013-07-13 18:27 ` Greg Kroah-Hartman
2013-07-14 2:22 ` Theodore Ts'o
2013-07-14 3:51 ` Greg Kroah-Hartman
2013-07-14 5:24 ` Guenter Roeck
2013-07-14 20:31 ` Geert Uytterhoeven
2013-07-13 6:43 ` Guenter Roeck
2013-07-13 6:58 ` Greg Kroah-Hartman
2013-07-14 23:52 ` Benjamin Herrenschmidt
2013-07-15 1:40 ` Linus Torvalds
2013-07-15 2:08 ` Benjamin Herrenschmidt
2013-07-14 22:58 ` Benjamin Herrenschmidt
2013-07-12 0:50 ` When to push bug fixes to mainline Theodore Ts'o
2013-07-12 1:20 ` [Ksummit-2013-discuss] " Nicholas A. Bellinger
2013-07-12 1:54 ` Steven Rostedt
2013-07-12 9:46 ` Jiri Kosina
2013-07-12 11:19 ` Josh Boyer
2013-07-12 2:57 ` John W. Linville
2013-07-12 3:34 ` Greg Kroah-Hartman
2013-07-12 7:32 ` James Bottomley
2013-07-12 17:20 ` H. Peter Anvin
2013-07-12 17:28 ` Greg Kroah-Hartman
2013-07-12 17:50 ` Steven Rostedt
2013-07-12 17:59 ` Linus Torvalds
2013-07-12 18:14 ` Steven Rostedt
2013-07-13 17:52 ` Geert Uytterhoeven
2013-07-12 17:57 ` Theodore Ts'o
2013-07-12 18:13 ` Guenter Roeck
2013-07-12 18:16 ` H. Peter Anvin
2013-07-12 18:28 ` H. Peter Anvin
2013-07-12 19:44 ` Linus Torvalds
2013-07-12 19:53 ` Steven Rostedt
2013-07-12 20:09 ` Shuah Khan
2013-07-12 20:33 ` Greg Kroah-Hartman
2013-07-12 20:46 ` Steven Rostedt
2013-07-12 22:19 ` H. Peter Anvin
2013-07-12 22:17 ` H. Peter Anvin
2013-07-13 6:44 ` Ingo Molnar
2013-07-13 0:24 ` Rafael J. Wysocki
2013-07-13 1:32 ` Greg Kroah-Hartman
2013-07-13 12:16 ` Rafael J. Wysocki
2013-07-12 3:25 ` Li Zefan
2013-07-15 4:22 ` Rob Landley
2013-07-12 5:14 ` Willy Tarreau
2013-07-16 7:19 ` David Lang
2013-07-16 16:40 ` [Ksummit-2013-discuss] " Takashi Iwai
2013-07-16 16:42 ` David Lang
2013-07-16 19:29 ` Takashi Iwai
2013-07-16 16:59 ` Mark Brown
2013-07-16 17:58 ` Luck, Tony
2013-07-16 18:29 ` Linus Torvalds
2013-07-16 18:41 ` Steven Rostedt
2013-07-16 19:11 ` Greg Kroah-Hartman
2013-07-16 19:43 ` Steven Rostedt
2013-07-16 20:10 ` Willy Tarreau
2013-07-17 2:58 ` Ben Hutchings
2013-07-17 9:43 ` Li Zefan
2013-07-16 18:48 ` Willy Tarreau
2013-07-19 10:13 ` Ingo Molnar
2013-07-16 18:39 ` Willy Tarreau
2013-07-16 18:40 ` H. Peter Anvin
2013-07-16 20:29 ` David Lang
2013-07-12 17:11 ` H. Peter Anvin
2013-07-12 17:20 ` [ 00/19] 3.10.1-stable review Shuah Khan
2013-07-12 17:29 ` Greg Kroah-Hartman
2013-07-13 4:14 ` Satoru Takeuchi
2013-07-14 23:06 ` Benjamin Herrenschmidt
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=20130711214832.250774896@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=Trond.Myklebust@netapp.com \
--cc=andros@netapp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@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 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.