stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH AUTOSEL for 3.18 001/102] NFSv4.1: RECLAIM_COMPLETE must handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION
@ 2018-03-19 16:11 Sasha Levin
  2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 002/102] IB/srpt: Fix abort handling Sasha Levin
                   ` (100 more replies)
  0 siblings, 101 replies; 104+ messages in thread
From: Sasha Levin @ 2018-03-19 16:11 UTC (permalink / raw)
  To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
  Cc: Trond Myklebust, Sasha Levin

From: Trond Myklebust <trond.myklebust@primarydata.com>

[ Upstream commit 0048fdd06614a4ea088f9fcad11511956b795698 ]

If the server returns NFS4ERR_CONN_NOT_BOUND_TO_SESSION because we
are trunking, then RECLAIM_COMPLETE must handle that by calling
nfs4_schedule_session_recovery() and then retrying.

Reported-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Tested-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
 fs/nfs/nfs4proc.c  |  7 ++++++-
 fs/nfs/nfs4state.c | 10 +++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index f7957690ff20..321044c183f5 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -7429,6 +7429,12 @@ static int nfs41_reclaim_complete_handle_errors(struct rpc_task *task, struct nf
 		/* fall through */
 	case -NFS4ERR_RETRY_UNCACHED_REP:
 		return -EAGAIN;
+	case -NFS4ERR_BADSESSION:
+	case -NFS4ERR_DEADSESSION:
+	case -NFS4ERR_CONN_NOT_BOUND_TO_SESSION:
+		nfs4_schedule_session_recovery(clp->cl_session,
+				task->tk_status);
+		break;
 	default:
 		nfs4_schedule_lease_recovery(clp);
 	}
@@ -7507,7 +7513,6 @@ static int nfs41_proc_reclaim_complete(struct nfs_client *clp,
 	if (status == 0)
 		status = task->tk_status;
 	rpc_put_task(task);
-	return 0;
 out:
 	dprintk("<-- %s status=%d\n", __func__, status);
 	return status;
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index f471662c0a1f..972992b36660 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1563,13 +1563,14 @@ static void nfs4_state_start_reclaim_reboot(struct nfs_client *clp)
 	nfs4_state_mark_reclaim_helper(clp, nfs4_state_mark_reclaim_reboot);
 }
 
-static void nfs4_reclaim_complete(struct nfs_client *clp,
+static int nfs4_reclaim_complete(struct nfs_client *clp,
 				 const struct nfs4_state_recovery_ops *ops,
 				 struct rpc_cred *cred)
 {
 	/* Notify the server we're done reclaiming our state */
 	if (ops->reclaim_complete)
-		(void)ops->reclaim_complete(clp, cred);
+		return ops->reclaim_complete(clp, cred);
+	return 0;
 }
 
 static void nfs4_clear_reclaim_server(struct nfs_server *server)
@@ -1616,13 +1617,16 @@ static void nfs4_state_end_reclaim_reboot(struct nfs_client *clp)
 {
 	const struct nfs4_state_recovery_ops *ops;
 	struct rpc_cred *cred;
+	int err;
 
 	if (!nfs4_state_clear_reclaim_reboot(clp))
 		return;
 	ops = clp->cl_mvops->reboot_recovery_ops;
 	cred = nfs4_get_clid_cred(clp);
-	nfs4_reclaim_complete(clp, ops, cred);
+	err = nfs4_reclaim_complete(clp, ops, cred);
 	put_rpccred(cred);
+	if (err == -NFS4ERR_CONN_NOT_BOUND_TO_SESSION)
+		set_bit(NFS4CLNT_RECLAIM_REBOOT, &clp->cl_state);
 }
 
 static void nfs_delegation_clear_all(struct nfs_client *clp)
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 104+ messages in thread

end of thread, other threads:[~2018-03-21 18:13 UTC | newest]

Thread overview: 104+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-19 16:11 [PATCH AUTOSEL for 3.18 001/102] NFSv4.1: RECLAIM_COMPLETE must handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 002/102] IB/srpt: Fix abort handling Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 003/102] af_key: Fix slab-out-of-bounds in pfkey_compile_policy Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 004/102] mac80211: bail out from prep_connection() if a reconfig is ongoing Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 005/102] bna: Avoid reading past end of buffer Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 006/102] qlge: " Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 007/102] net: ethernet: ti: cpsw: adjust cpsw fifos depth for fullduplex flow control Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 008/102] lockd: fix lockd shutdown race Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 009/102] pidns: disable pid allocation if pid_ns_prepare_proc() is failed in alloc_pid() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 010/102] s390: move _text symbol to address higher than zero Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 011/102] net/mlx4_en: Avoid adding steering rules with invalid ring Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 012/102] CIFS: silence lockdep splat in cifs_relock_file() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 013/102] net: qca_spi: Fix alignment issues in rx path Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 014/102] netxen_nic: set rcode to the return status from the call to netxen_issue_cmd Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 015/102] scsi: sg: don't return bogus Sg_requests Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 016/102] KVM: PPC: Book3S PR: Check copy_to/from_user return values Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 017/102] vmxnet3: ensure that adapter is in proper state during force_close Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 018/102] SMB2: Fix share type handling Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 019/102] PowerCap: Fix an error code in powercap_register_zone() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 020/102] staging: wlan-ng: prism2mgmt.c: fixed a double endian conversion before calling hfa384x_drvr_setconfig16, also fixes relative sparse warning Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 021/102] x86/tsc: Provide 'tsc=unstable' boot parameter Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 022/102] ARM: dts: imx6qdl-wandboard: Fix audio channel swap Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 023/102] ipv6: avoid dad-failures for addresses with NODAD Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 024/102] async_tx: Fix DMA_PREP_FENCE usage in do_async_gen_syndrome() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 025/102] usb: dwc3: keystone: check return value Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 026/102] btrfs: fix incorrect error return ret being passed to mapping_set_error Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 027/102] ata: libahci: properly propagate return value of platform_get_irq() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 028/102] neighbour: update neigh timestamps iff update is effective Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 029/102] usb: chipidea: properly handle host or gadget initialization failure Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 030/102] USB: ene_usb6250: fix first command execution Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 031/102] net: x25: fix one potential use-after-free issue Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 032/102] USB: ene_usb6250: fix SCSI residue overwriting Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 033/102] sh_eth: Use platform device for printing before register_netdev() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 034/102] ath5k: fix memory leak on buf on failed eeprom read Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 035/102] selftests/powerpc: Fix TM resched DSCR test with some compilers Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 036/102] xfrm: fix state migration copy replay sequence numbers Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 037/102] ARM: davinci: da8xx: Create DSP device only when assigned memory Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 038/102] ray_cs: Avoid reading past end of buffer Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 039/102] leds: pca955x: Correct I2C Functionality Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 040/102] block: fix an error code in add_partition() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 041/102] libceph: NULL deref on crush_decode() error path Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 042/102] netfilter: ctnetlink: fix incorrect nf_ct_put during hash resize Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 043/102] scsi: bnx2fc: fix race condition in bnx2fc_get_host_stats() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 044/102] fix race in drivers/char/random.c:get_reg() Sasha Levin
2018-03-20  9:48   ` Geert Uytterhoeven
2018-03-21 18:13     ` Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 045/102] ext4: fix off-by-one on max nr_pages in ext4_find_unwritten_pgoff() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 046/102] net: move somaxconn init from sysctl code Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 047/102] bonding: Don't update slave->link until ready to commit Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 048/102] KVM: nVMX: Fix handling of lmsw instruction Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 049/102] net: llc: add lock_sock in llc_ui_bind to avoid a race condition Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 050/102] l2tp: fix missing print session offset info Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 051/102] scsi: libiscsi: Allow sd_shutdown on bad transport Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 052/102] vfb: fix video mode and line_length being set when loaded Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 053/102] wl1251: check return from call to wl1251_acx_arp_ip_filter Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 054/102] hdlcdrv: Fix divide by zero in hdlcdrv_ioctl Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 055/102] HID: i2c: Call acpi_device_fix_up_power for ACPI-enumerated devices Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 056/102] ovl: filter trusted xattr for non-admin Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 057/102] powerpc/[booke|4xx]: Don't clobber TCR[WP] when setting TCR[DIE] Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 058/102] arm64: futex: Fix undefined behaviour with FUTEX_OP_OPARG_SHIFT usage Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 059/102] rtc: interface: Validate alarm-time before handling rollover Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 060/102] net: freescale: fix potential null pointer dereference Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 061/102] KVM: SVM: do not zero out segment attributes if segment is unusable or not present Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 062/102] powerpc/spufs: Fix coredump of SPU contexts Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 063/102] perf trace: Add mmap alias for s390 Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 064/102] qlcnic: Fix a sleep-in-atomic bug in qlcnic_82xx_hw_write_wx_2M and qlcnic_82xx_hw_read_wx_2M Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 065/102] mISDN: Fix a sleep-in-atomic bug Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 066/102] drm/omap: fix tiled buffer stride calculations Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 067/102] Fix serial console on SNI RM400 machines Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 068/102] bio-integrity: Do not allocate integrity context for bio w/o data Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 069/102] skbuff: return -EMSGSIZE in skb_to_sgvec to prevent overflow Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 070/102] net/mlx4: Fix the check in attaching steering rules Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 071/102] perf report: Ensure the perf DSO mapping matches what libdw sees Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 072/102] tags: honor COMPILED_SOURCE with apart output directory Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 073/102] e1000e: fix race condition around skb_tstamp_tx() Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 074/102] [media] cx25840: fix unchecked return values Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 075/102] [media] mceusb: sporadic RX truncation corruption fix Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 076/102] net: phy: avoid genphy_aneg_done() for PHYs without clause 22 support Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 077/102] e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 078/102] perf/core: Correct event creation with PERF_FORMAT_GROUP Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 079/102] MIPS: mm: fixed mappings: correct initialisation Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 080/102] MIPS: kprobes: flush_insn_slot should flush only if probe initialised Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 081/102] net: emac: fix reset timeout with AR8035 phy Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 082/102] perf tests: Decompress kernel module before objdump Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 083/102] xen: avoid type warning in xchg_xen_ulong Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 084/102] bnx2x: Allow vfs to disable txvlan offload Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 085/102] sctp: fix recursive locking warning in sctp_do_peeloff Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 086/102] sparc64: ldc abort during vds iso boot Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 087/102] iio: magnetometer: st_magn_spi: fix spi_device_id table Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 088/102] Bluetooth: Send HCI Set Event Mask Page 2 command only when needed Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 089/102] ACPICA: Events: Add runtime stub support for event APIs Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 090/102] ACPICA: Disassembler: Abort on an invalid/unknown AML opcode Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 091/102] vxlan: dont migrate permanent fdb entries during learn Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 092/102] xfs: fix up agi unlinked list reservations Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 093/102] bcache: stop writeback thread after detaching Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 094/102] bcache: segregate flash only volume write streams Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 095/102] scsi: libsas: fix memory leak in sas_smp_get_phy_events() Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 096/102] scsi: libsas: fix error when getting phy events Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 097/102] scsi: libsas: initialize sas_phy status according to response of DISCOVER Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 098/102] tty: n_gsm: Allow ADM response in addition to UA for control dlci Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 099/102] EDAC, mv64x60: Fix an error handling path Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 100/102] signal/metag: Document a conflict with SI_USER with SIGFPE Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 101/102] signal/powerpc: Document conflicts with SI_USER and SIGFPE and SIGTRAP Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 102/102] signal/arm: Document conflicts with SI_USER and SIGFPE Sasha Levin

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).