+ if (rc == 0) {
+ /* this could be cross-node reference. in this case all
+ * we have right now is mds/ino/generation triple. we'd
+ * like to find other attributes */
+ body = lustre_msg_buf((*request)->rq_repmsg, 0, sizeof(*body));
+ LASSERT(body != NULL);
+ if (body->valid & OBD_MD_MDS) {
+ struct ptlrpc_request *req = NULL;
+ rfid = body->fid1;
+ CDEBUG(D_OTHER, "request attrs for %lu/%lu/%lu\n",
+ (unsigned long) rfid.mds,
+ (unsigned long) rfid.id,
+ (unsigned long) rfid.generation);
+ rc = md_getattr_name(lmv->tgts[rfid.mds].exp, &rfid,
+ NULL, 1, valid, ea_size, &req);
+ ptlrpc_req_finished(*request);
+ *request = req;
+ }
+ }