LASSERT(lov->lo_type == LLT_EMPTY || lov->lo_type == LLT_RELEASED);
lov_layout_wait(env, lov);
-
- cl_locks_prune(env, &lov->lo_cl, 0);
return 0;
}
struct lovsub_object *los = r0->lo_sub[i];
if (los != NULL) {
- cl_locks_prune(env, &los->lso_cl, 1);
+ cl_object_prune(env, &los->lso_cl);
/*
* If top-level object is to be evicted from
* the cache, so are its sub-objects.
}
}
}
- cl_locks_prune(env, &lov->lo_cl, 0);
RETURN(0);
}
old_ops = &lov_dispatch[lov->lo_type];
new_ops = &lov_dispatch[llt];
- cl_object_prune(env, &lov->lo_cl);
+ result = cl_object_prune(env, &lov->lo_cl);
+ if (result != 0)
+ GOTO(out, result);
result = old_ops->llo_delete(env, lov, &lov->u);
if (result == 0) {
}
}
+out:
cl_env_put(env, &refcheck);
cl_env_reexit(cookie);
RETURN(result);
GOTO(out, result = -EBUSY);
}
- lov->lo_layout_invalid = lov_layout_change(env, lov, conf);
+ result = lov_layout_change(env, lov, conf);
+ lov->lo_layout_invalid = result != 0;
EXIT;
out: