Whamcloud - gitweb
LU-6271 osc: further OSC cleanup after eviction 56/16456/8
authorJinshan Xiong <jinshan.xiong@intel.com>
Wed, 16 Sep 2015 18:47:20 +0000 (11:47 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 1 Oct 2015 14:22:20 +0000 (14:22 +0000)
commite8b421531c166b91ab5c1f417570c544bcdd050c
tree99b026f2e632c04eb4820cba317f8f2e868d47dc
parent0887b89c0c4e2b7c5a7ba3365e758a7d94c667fa
LU-6271 osc: further OSC cleanup after eviction

A few problems are fixed in this patch:
1. a ldlm lock could be canceled simutaneously by ldlm bl thread and
  cleanup_resource(). In this case, only one side will win the race
  and the other side should wait for the work to complete;
2. in lov_io_iter_init(), if cl_io_iter_init() against sub io fails,
  it should call cl_io_iter_fini() to cleanup leftover information;
3. define osc_lru_reserve() and osc_lru_unreserve() to reserve LRU
  slots in osc_io_write_iter_init() and unreserve them in fini();
4. eviction on group lock is well supported;
5. cleanups

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I293770b62e177a9ecefe0b4e05f3a8f44b1c831d
Reviewed-on: http://review.whamcloud.com/16456
Tested-by: Jenkins
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
15 files changed:
lustre/include/cl_object.h
lustre/include/lustre_dlm_flags.h
lustre/ldlm/ldlm_lock.c
lustre/ldlm/ldlm_request.c
lustre/ldlm/ldlm_resource.c
lustre/llite/vvp_io.c
lustre/lov/lov_io.c
lustre/osc/osc_cache.c
lustre/osc/osc_cl_internal.h
lustre/osc/osc_internal.h
lustre/osc/osc_io.c
lustre/osc/osc_lock.c
lustre/osc/osc_object.c
lustre/osc/osc_page.c
lustre/osc/osc_request.c