Whamcloud - gitweb
LU-9224 fid: race between client_fid_fini and seq_client_flush 79/26079/4
authorFan Yong <fan.yong@intel.com>
Tue, 8 Nov 2016 16:47:59 +0000 (00:47 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 30 Mar 2017 03:54:39 +0000 (03:54 +0000)
commitc0d30fc79be0788fca19bfa7e3b5048881195fc6
tree825d79ef7e74a9dcbd8c9afbecc16911df15dda5
parent7a02c78d18b9fec17efa24c5807d80d8faaaee9b
LU-9224 fid: race between client_fid_fini and seq_client_flush

When the client mount failed or umount, the client_fid_fini() will
be called. At that time, the async connection failure will trigger
seq_client_flush() which parameter may have been released by the
client_fid_fini() by race.

Introduce client_obd::cl_seq_rwsem to protect client_obd::cl_seq.

Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I96b195676b0d1356a8ae7438cdf69d2e258abd23
Reviewed-on: https://review.whamcloud.com/26079
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/fid/fid_request.c
lustre/include/obd.h
lustre/ldlm/ldlm_lib.c
lustre/mdc/mdc_request.c