Whamcloud - gitweb
LU-8907 llite: handle client racy case during create 96/25296/5
authorBruno Faccini <bruno.faccini@intel.com>
Tue, 7 Feb 2017 11:30:35 +0000 (12:30 +0100)
committerOleg Drokin <oleg.drokin@intel.com>
Sun, 26 Mar 2017 06:50:20 +0000 (06:50 +0000)
commitee25babfe72378f9496a9732742984f26eb7d4a5
tree9d1ac7ea25b5a766056440c546a23be08adaea96
parent8276b394d14d405bc68e86a21111ca45175a1749
LU-8907 llite: handle client racy case during create

Some very infrequent situations exists on client side
able to cause a race during create when concurrent access
by fid occurs. The result of the race can allow a d_alias
to be already present when it was not expected when original
code/LBUG has been written.

One of the identified scenario is when a concurrent access of
inode thru the .lustre/fid/<[FID]> method occurs.

New sanity/test_161d has been added to reproduce this scenario.

Final fix is to remove inaccurate
LASSERT(ll_d_hlist_empty(&inode->i_dentry));
in ll_create_node().

Signed-off-by: Bruno Faccini <bruno.faccini@intel.com>
Change-Id: I1ff19883cc5b53831f1d5c577f4152225fa9e0fb
Reviewed-on: https://review.whamcloud.com/25296
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/include/obd_support.h
lustre/llite/namei.c
lustre/tests/sanity.sh