|
During patch review Andreas has mentioned:
My preference is to avoid disabling this feature/optimization to handle a rare use case. I don't think it matters which mirror the pages are attached to, if the source is not stale.
Definitely the DoM data should not be returned if that component is marked stale, but otherwise it should be returned to the client and attached to any mirror.
That is also possible way to go, but it has to avoid LU-16468 issue which happenned due to missing lov_io_mirror_init() I think. So far I see two possibilities:
- remove ci_ignore_layout in ll_dom_finish_open() for CIT_MISC IO, thus lov_io_mirror_init() will be not skipped in lov_io_slice_init()
- keep that flag but do lov_io_mirror_init() always, with and without that flag
Initially that ci_ignore_layout was used to prevent layout_refresh() call while caller is under live layout lock, so it can reveal potential deadlock. That doesn't look so from code, it should match existing lock and proceed but still that flag removal need extra tests, racer probably. On other hand, including lov_io_mirror_init() to be called with 'ignore_layout' flag can be not safe too, when MISC IO is started from OSC
|