Whamcloud - gitweb
LU-8359 ldlm: Wrong evict during failover 14/21114/7
authorAndriy Skulysh <andriy.skulysh@seagate.com>
Fri, 5 Aug 2016 11:25:02 +0000 (14:25 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 16 May 2017 05:45:46 +0000 (05:45 +0000)
commitc60e949e3b9f7ff19e1a644210cc764ee150ad8b
treed0595af9e780b2df89826d26877d7f03d1d9e10f
parent3800d05641158608e5a139336c00a781fa9fb8c7
LU-8359 ldlm: Wrong evict during failover

There is a race between setting obd_fail & OBD_OPT_FAILOVER.
tgt_client_del() checks only OBD_OPT_FAILOVER,
class_disconnect_export_list() is called with flags copied
from obd, and umount can start while disconnect
is in progress.

It is better to rely only on obd_fail.
We shouldn't evict during failover at all, it should
be handled on a new server.
Such wrong evict can happen when server can't send CP AST
to the client because failover has started already.

Change-Id: I649d35d180b2239fe558b375872d3805629968a9
Seagate-bug-id: MRP-3604
Signed-off-by: Andriy Skulysh <andriy.skulysh@seagate.com>
Reviewed-on: https://review.whamcloud.com/21114
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Ben Evans <bevans@cray.com>
Reviewed-by: Alexander Zarochentsev <alexander.zarochentsev@seagate.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/include/lustre_export.h
lustre/include/obd_class.h
lustre/mdt/mdt_handler.c
lustre/ofd/ofd_obd.c
lustre/target/tgt_lastrcvd.c