oinfo.oi_policy.l_extent.end = OBD_OBJECT_EOF;
oinfo.oi_oa = &oa;
oa.o_id = lli->lli_smd->lsm_object_id;
+ oa.o_gr = lli->lli_smd->lsm_object_gr;
oa.o_valid = OBD_MD_FLID | OBD_MD_FLGROUP;
obdo_from_inode(&oa, inode, OBD_MD_FLTYPE | OBD_MD_FLMODE |
int lap_stripe;
obd_off lap_sub_offset;
obd_id lap_loi_id;
+ obd_gr lap_loi_gr;
void *lap_sub_cookie;
struct obd_async_page_ops *lap_caller_ops;
void *lap_caller_data;
lap->lap_caller_ops->ap_fill_obdo(lap->lap_caller_data, cmd, oa);
/* XXX woah, shouldn't we be altering more here? size? */
oa->o_id = lap->lap_loi_id;
+ oa->o_gr = lap->lap_loi_gr;
+ oa->o_valid |= OBD_MD_FLGROUP;
oa->o_stripe_idx = lap->lap_stripe;
}
/* so the callback doesn't need the lsm */
lap->lap_loi_id = loi->loi_id;
-
+ lap->lap_loi_gr = lsm->lsm_object_gr;
+ LASSERT(lsm->lsm_object_gr > 0);
+
lap->lap_sub_cookie = (void *)lap + size_round(sizeof(*lap));
rc = obd_prep_async_page(lov->lov_tgts[loi->loi_ost_idx]->ltd_exp,
struct obd_trans_info *oti, int rc)
{
struct inode *inode = NULL;
- struct ldlm_res_id res_id = { .name = { obj->ioo_id } };
+ struct ldlm_res_id res_id = { .name = { obj->ioo_id, 0,
+ obj->ioo_gr, 0} };
struct ldlm_resource *resource = NULL;
struct ldlm_namespace *ns = exp->exp_obd->obd_namespace;
ENTRY;
struct lustre_handle *lh)
{
int flags;
- struct ldlm_res_id res_id = { .name = { oa->o_id } };
+ struct ldlm_res_id res_id = { .name = { oa->o_id, 0, oa->o_gr, 0} };
ldlm_policy_data_t policy;
__u64 start;
__u64 finis;
{
int flags = 0;
int nrbufs = obj->ioo_bufcnt;
- struct ldlm_res_id res_id = { .name = { obj->ioo_id } };
+ struct ldlm_res_id res_id = { .name = { obj->ioo_id, 0,
+ obj->ioo_gr, 0} };
ldlm_policy_data_t policy;
int i;
static void ost_prolong_locks(struct obd_export *exp, struct obd_ioobj *obj,
struct niobuf_remote *nb, ldlm_mode_t mode)
{
- struct ldlm_res_id res_id = { .name = { obj->ioo_id } };
+ struct ldlm_res_id res_id = { .name = { obj->ioo_id, 0,
+ obj->ioo_gr, 0} };
int nrbufs = obj->ioo_bufcnt;
struct ost_prolong_data opd;