- ctxt = llog_get_context(obd, LLOG_UNLINK_ORIG_CTXT);
- rc = llog_add(ctxt, NULL, lsm, lustre_msg_buf(repmsg, offset + 1, 0),
- repmsg->buflens[offset + 1] / sizeof(struct llog_cookie));
+ if (res != NULL) {
+ size = offset +
+ sizeof(struct rw_semaphore *) * lsm->lsm_stripe_count;
+ OBD_ALLOC(lcl, size);
+ if (lcl == NULL)
+ RETURN(-ENOMEM);
+
+ lcl->lcl_count = lsm->lsm_stripe_count;
+ *res = lcl;
+ }
+
+ ctxt = llog_get_context(&obd->obd_llogs, LLOG_UNLINK_ORIG_CTXT);
+ rc = llog_add(ctxt, NULL, lsm, logcookies,
+ cookies_size / sizeof(struct llog_cookie), NULL,
+ res ? &lcl->lcl_locks[0] : NULL, &lock_count);
+
+ obd_free_memmd(mds->mds_dt_exp, &lsm);