const struct cl_page_slice *slice,
struct cl_io *unused, pgoff_t *max_index)
{
- struct osc_page *opg = cl2osc_page(slice);
- struct cl_lock *lock;
- int result = -ENODATA;
- ENTRY;
+ struct osc_page *opg = cl2osc_page(slice);
+ struct ldlm_lock *dlmlock;
+ int result = -ENODATA;
- *max_index = 0;
- lock = cl_lock_at_pgoff(env, slice->cpl_obj, osc_index(opg),
- NULL, 1, 0);
- if (lock != NULL) {
- *max_index = lock->cll_descr.cld_end;
- cl_lock_put(env, lock);
+ ENTRY;
+ dlmlock = dlmlock_at_pgoff(env, cl2osc(slice->cpl_obj),
+ osc_index(opg), 1, 0);
+ if (dlmlock != NULL) {
+ *max_index = cl_index(slice->cpl_obj,
+ dlmlock->l_policy_data.l_extent.end);
+ LDLM_LOCK_PUT(dlmlock);
result = 0;
}
RETURN(result);