Whamcloud - gitweb
LU-2723 clio: a client hangs on osc_extent_wait in dio
authorVitaly Fertman <vitaly_fertman@xyratex.com>
Thu, 31 Jan 2013 12:36:19 +0000 (16:36 +0400)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 4 Feb 2013 19:23:13 +0000 (14:23 -0500)
commit3183c104a7526e87d10c2d4e474fbbd08728fe8d
tree9ed44a3275e77a5c2780615dbb7775c4393333bc
parent757a18894de5948b8d8aab053c0b883c64d27782
LU-2723 clio: a client hangs on osc_extent_wait in dio

If dio overlaps with mapped region, first overlapped pages are sent
by generic_file_direct_write->filemap_write_and_wait_range->writepages
After that the dio pages are sent by write_begin/write_end, writepages
However, write_end->osc_page_cache_add does not release extent because
the IO is not considered as synchronous. as the result, the following
writepages->osc_cache_writeback_range() does not send pages as the
extent is still ACTIVE and osc_cache_wait_range() hangs forever.

The patch make directIO to be considered as sync by lustre so that
extent was released at write_end.

Signed-off-by: Vitaly Fertman <vitaly_fertman@xyratex.com>
Xyratex-bug-id: MRP-839
Change-Id: I0c0e1599ee180f467826e4b6715c3cbfd0c6eb5c
Reviewed-on: http://review.whamcloud.com/5224
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/llite/file.c