Whamcloud - gitweb
LU-8210 osd-ldiskfs: fix setting pages PageUptodate state
In our VM autotest
sanity:156 test failed in rhel7 plataform for writecache
disable and readcache enabled.
After debugging this is because of we miss to set PageUptodate
after reading bio finish, this will make read cache total
unusable for rhel7, because osd_read_prep() will think pages
always not uptodate and triger bio submitting for every reading
request.
Problems come from pages iterating, since bio_for_each_segment_all
introduced, bio_for_each_segment will no longer work right
for pages interating anymore, we should use new interface
for rhel7.
So this problems only exist for some specific Drivers:
From Documentation/block/biodoc.txt
-------------------------------
Drivers which can't process a large bio in one shot can
use the bi_idx field to keep track of the next bio_vec entry
to process.(e.g a 1MB bio_vec needs to be handled in max 128kB
chunks for IDE) [TBD: Should preferably also have a bi_voffset
and bi_vlen to avoid modifying bi_offset an len fields]
-------------------------------
This might explain why intel autotest could not reproduce it
but our clustered can always reproduce the problem.
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: I5d3de5bf5facbee8d9450c15b8ab7189d7f2fbfe
Reviewed-on: http://review.whamcloud.com/20478
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Li Xi <lixi@ddn.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>