Whamcloud - gitweb
LU-2720 clio: remove CILR_PEEK optimization
authorVitaly Fertman <vitaly_fertman@xyratex.com>
Thu, 31 Jan 2013 12:40:07 +0000 (16:40 +0400)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 22 Feb 2013 22:11:16 +0000 (17:11 -0500)
commit67af9ea47e43c53bf53cb1e9fed8a3222b5c6a8e
tree493339295480b35fe6e721e3c10467f8aad84b63
parent406e94326c2c5427902890792443759c3a244a1f
LU-2720 clio: remove CILR_PEEK optimization

some issues with that optimization in mkwrite are found:
1) ENODATA handling wrote the page and invalidated it, but the page
could have been re-added to the cache in between these 2 steps;
2) lock could be busy, so we get ENODATA on trylock, whereas a racy
ll_fault waits for lock mutex and re-adds the page to the cache;

The patch also adds a loop over trying to take a cached lock while
it is used.

Signed-off-by: Vitaly Fertman <vitaly_fertman@xyratex.com>
Change-Id: I7799b45ff3a0a60f307e05ffd1618d23e0e77b72
Xyratex-bug-id: MRP-752
Reviewed-on: http://review.whamcloud.com/5222
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/include/cl_object.h
lustre/llite/llite_mmap.c
lustre/obdclass/cl_io.c