linux/drivers/staging
Alexander Boyko 2d097e5f5c staging: lustre: ptlrpc: skip lock if export failed
[ Upstream commit 4c43c27ddc ]

This patch resolves IO vs eviction race.
After eviction failed export stayed at stale list,
a client had IO processing and reconnected during it.
A client sent brw rpc with last lock cookie and new connection.
The lock with failed export was found and assert was happened.
 (ost_handler.c:1812:ost_prolong_lock_one())
  ASSERTION( lock->l_export == opd->opd_exp ) failed:

 1. Skip the lock at ldlm_handle2lock if lock export failed.
 2. Validation of lock for IO was added at hpreq_check(). The lock
    searching is based on granted interval tree. If server doesn`t
    have a valid lock, it reply to client with ESTALE.

Signed-off-by: Alexander Boyko <alexander.boyko@seagate.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7702
Seagate-bug-id: MRP-2787
Reviewed-on: http://review.whamcloud.com/18120
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Vitaly Fertman <vitaly.fertman@seagate.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-08 10:06:30 +01:00
..
android staging/android/ion : fix a race condition in the ion driver 2017-04-30 05:49:29 +02:00
board staging: board: Set PM domain before probe 2015-10-29 09:05:57 +09:00
clocking-wizard
comedi Staging: comedi: comedi_fops: Avoid orphaned proc entry 2017-08-06 19:19:40 -07:00
dgap staging: dgap: add spaces around binary operator '|' 2015-10-24 19:33:42 -07:00
dgnc staging: dgnc: dgnc_driver: Remove useless initialisation 2015-10-16 22:56:23 -07:00
emxx_udc staging: emxx_udc: remove incorrect __init annotations 2017-05-14 13:32:58 +02:00
fbtft Staging: fbtft: Fix bug in fbtft-core 2016-10-07 15:23:47 +02:00
fsl-mc staging: fsl-mc: section mismatch bug fix 2015-10-27 14:40:14 +09:00
fwserial
gdm72xx Staging: gdm72xx: Remove unnecessary cast on void pointer 2015-10-16 22:51:48 -07:00
gdm724x staging: gdm724x: gdm_mux: fix use-after-free on module unload 2017-05-20 14:26:59 +02:00
goldfish
gs_fpgaboot
iio staging: iio: ad7192: Fix - use the dedicated reset function avoiding dma from stack. 2017-10-12 11:27:34 +02:00
lustre staging: lustre: ptlrpc: skip lock if export failed 2017-11-08 10:06:30 +01:00
media media updates for v4.4-rc1 2015-11-05 12:05:15 -08:00
most staging: most: remove exclusive wait_queue 2015-10-29 08:57:19 +09:00
mt29f_spinand MTD updates for 4.4-rc1: 2015-11-06 11:50:24 -08:00
netlogic staging: netlogic: Do not use multiple blank lines. 2015-10-24 19:38:48 -07:00
nvec staging: nvec: remove managed resource from PS2 driver 2016-11-18 10:48:35 +01:00
octeon staging: octeon: Do not use multiple blank lines. 2015-10-24 19:28:52 -07:00
octeon-usb staging: octeon-usb: Replace kmalloc with kmalloc_array 2015-10-24 19:28:52 -07:00
olpc_dcon Staging: olpc_dcon: Remove NULL comparison 2015-10-16 23:06:38 -07:00
panel Revert "Staging: panel: usleep_range is preferred over udelay" 2016-03-03 15:07:26 -08:00
rdma IB/ehca: fix maybe-uninitialized warnings 2017-05-08 07:46:02 +02:00
rtl8188eu staging: rtl8188eu: add RNX-N150NUB support 2017-08-30 10:19:27 +02:00
rtl8192e staging: rtl8192e: rtl92e_fill_tx_desc fix write to mapped out memory. 2017-06-17 06:39:35 +02:00
rtl8192u Staging: rtl8192u: ieee80211: added missing blank lines 2015-10-29 09:10:55 +09:00
rtl8712 staging: rtl8712u: Fix endian settings for structs describing network packets 2017-11-08 10:06:29 +01:00
rtl8723au staging: rtl8723au: core: Remove unnecessary functions 2015-10-29 07:55:17 +09:00
rts5208 staging/rts5208: fix incorrect shift to extract upper nybble 2017-09-13 14:09:44 -07:00
skein skein: fix coding style 2015-10-24 19:30:12 -07:00
slicoss staging: slicoss: Fixes block comment style 2015-10-27 14:43:31 +09:00
sm750fb staging: sm750fb: remove unused fields from struct sm750_dev 2015-10-27 17:04:57 +09:00
speakup Staging: speakup: Fix getting port information 2016-03-03 15:07:26 -08:00
ste_rmi4
unisys staging: unisys: Remove useless intialisation 2015-10-16 22:59:36 -07:00
vme
vt6655 staging: vt6655: Add space around '*' 2015-10-24 19:38:48 -07:00
vt6656 staging: vt6556: vnt_start Fix missing call to vnt_key_init_table. 2017-07-15 11:57:49 +02:00
wilc1000 Revert "Staging: wilc1000: coreconfigurator: Drop unneeded wrapper functions" 2015-11-18 13:22:44 -08:00
wlan-ng staging: wlan-ng: add missing byte order conversion 2017-05-14 13:32:57 +02:00
xgifb Staging: xgifb: Remove space after cast 2015-10-24 19:11:30 -07:00
Kconfig staging: ft1000: remove obsolete driver 2015-10-24 19:19:43 -07:00
Makefile staging: ft1000: remove obsolete driver 2015-10-24 19:19:43 -07:00
staging.c