struct cl_site *site = cl_object_site(o);
int err;
- LINVRNT(type == CPT_CACHEABLE || type == CPT_TRANSIENT);
+ LASSERT(type == CPT_CACHEABLE || type == CPT_TRANSIENT);
cfs_might_sleep();
ENTRY;
* Either page is early in initialization (has neither child
* nor parent yet), or it is in the object radix tree.
*/
- ergo(pg->cp_state < CPS_FREEING,
+ ergo(pg->cp_state < CPS_FREEING && pg->cp_type == CPT_CACHEABLE,
(void *)radix_tree_lookup(&header->coh_tree,
pg->cp_index) == pg ||
(child == NULL && parent == NULL));
static void cl_page_state_set(const struct lu_env *env,
struct cl_page *page, enum cl_page_state state)
{
- PINVRNT(env, page, cl_page_invariant(page));
cl_page_state_set0(env, page, state);
}
void cl_page_assume(const struct lu_env *env,
struct cl_io *io, struct cl_page *pg)
{
- PASSERT(env, pg, pg->cp_state < CPS_OWNED);
PASSERT(env, pg, pg->cp_owner == NULL);
PINVRNT(env, pg, cl_object_same(pg->cp_obj, io->ci_obj));
PINVRNT(env, pg, cl_page_invariant(pg));
/* cl_page::cp_req already cleared by the caller (osc_completion()) */
PASSERT(env, pg, pg->cp_req == NULL);
PASSERT(env, pg, pg->cp_state == cl_req_type_state(crt));
- PINVRNT(env, pg, cl_page_invariant(pg));
ENTRY;
CL_PAGE_HEADER(D_TRACE, env, pg, "%d %d\n", crt, ioret);
(const struct lu_env *,
const struct cl_page_slice *, int), ioret);
if (anchor) {
+ LASSERT(cl_page_is_vmlocked(env, pg));
LASSERT(pg->cp_sync_io == anchor);
pg->cp_sync_io = NULL;
cl_sync_io_note(anchor, ioret);