Whamcloud - gitweb
LU-6666 osc: Do not merge extents with partial pages 68/15468/3
authorJinshan Xiong <jinshan.xiong@intel.com>
Thu, 2 Jul 2015 07:30:55 +0000 (15:30 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 30 Nov 2015 17:19:19 +0000 (17:19 +0000)
commitac1d6ab73c733caf2fa0ccf504955b23d3e572f0
treeb1b34e78a566626bff24e9ca302785321352f904
parenteedb94a0503c8bc319a59174b7939835fadfd167
LU-6666 osc: Do not merge extents with partial pages

After range lock is introduced to Lustre, it's possible for
multiple threads to submit osc_extents with partial pages, and
finally I/O engine may try to merge these extents, which will
end up with assert in osc_build_rpc().

In this patch, osc_extent::oe_no_merge is introduced, and this flag
is set if osc_extent submitted via osc_io_submit() includes partial
pages. This flag is used by I/O engine to stop merging this kind
of extents.

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I0c851912beb0370553bc2e2b05f80dee175a2f1f
Reviewed-on: http://review.whamcloud.com/15468
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Patrick Farrell <paf@cray.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/osc/osc_cache.c
lustre/osc/osc_cl_internal.h