Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
3
-
9223372036854775807
Description
Got 2 cases about cl_page_state_set0()) LBUG.
- (cl_page_state_set0()) allowed_transitions[old][state]
cl_page_state_set0+0x504/0x8f0 [obdclass]
cl_page_assume+0x130/0x4a0 [obdclass]
ll_read_ahead_page+0x5cc/0x730 [lustre]
And the cl_page cp_state is 2 (CPS_PAGEOUT) cp_owner has value. The page is meant to transit from CACHED to OWNED, but it already has been in PAGEOUT state.
- (cl_page.c:346:cl_page_state_set0()) equi(state == CPS_OWNED, page->cp_owner != NULL)
cl_page_state_set0+0x3ef/0x3f0 [obdclass]
cl_page_io_start+0x46/0x110 [obdclass]
cl_page_prep+0x170/0x190 [obdclass]
osc_io_submit+0x1e8/0x730 [osc]
And the cl_page cp_state is 1 (CPS_OWNED) cp_onwer has value. The page is meant to transit from OWNED to PAGEOUT, but cl_page_io_start() should has cleared its cp_owner.