Whamcloud - gitweb
LU-4852 osc: osc_extent_truncate()) ASSERTION( !ext->oe_urgent ) failed 04/10204/2
authorAndriy Skulysh <Andriy_Skulysh@xyratex.com>
Sun, 4 May 2014 10:30:27 +0000 (13:30 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 11 Jun 2014 19:32:42 +0000 (19:32 +0000)
commit28de66844bad37e7fb4b1714a26ee1a880efc619
treeecfb7a98b5deaf66d94db26dc1392dfcc48086cc
parentb7243c057afa0c300b0735694b81bf6075559d07
LU-4852 osc: osc_extent_truncate()) ASSERTION( !ext->oe_urgent ) failed

The bug was caused by race between truncate & fsync.
osc_extent_wait() doesn't takes into account oe_trunc_pending
during setting oe_urgent. The race arises after
osc_object_unlock().
osc_extent_wait() should ignore extents with oe_trunc_pending
while waiting for OES_INV. osc_cache_truncate_end() will set
oe_urgent and call osc_io_unplug_async()

Change-Id: I6f4c8420faa67bf4b14b1c5c2bc37fa282a7b072
Xyratex-bug-id: LELUS-239
Signed-off-by: Andriy Skulysh <Andriy_Skulysh@xyratex.com>
Reviewed-on: http://review.whamcloud.com/10204
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/osc/osc_cache.c