Whamcloud - gitweb
LU-2722 clio: directIO thread races with completion thread
authorVitaly Fertman <vitaly_fertman@xyratex.com>
Thu, 31 Jan 2013 12:12:42 +0000 (16:12 +0400)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 5 Feb 2013 16:50:06 +0000 (11:50 -0500)
commitc4f8279e40f9cbc6b266db19f239d8e175da089c
tree6920a5fab84342065501ef285ebc7bfb311357e9
parent57267444aa67399b586b94073609c0ad9c4cb3b0
LU-2722 clio: directIO thread races with completion thread

ll_direct_IO_26()) ASSERTION( obj->cob_transient_pages == 0 ) failed

The directio thread puts pages to the transfer in osc_io_submit(), and
waits for its completion. Upon completion, osc_completion() is called,
which notifies waiters IO is completed and only after that put the
page. the original directIO thread wakes up and may succeed to assert
on the last page which is not yet put by osc_completion().

Signed-off-by: Vitaly Fertman <vitaly_fertman@xyratex.com>
Change-Id: Ib912e913885a9ff2cb1e9c865ae2003a676c2b5b
Xyratex-bug-id: MRP-838
Reviewed-on: http://review.whamcloud.com/5223
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/obdclass/cl_page.c
lustre/osc/osc_cache.c