- if ( body->valid & OBD_MD_FLID )
- dst->i_ino = body->ino;
- if ( body->valid & OBD_MD_FLATIME )
- dst->i_atime = body->atime;
- if ( body->valid & OBD_MD_FLMTIME )
- dst->i_mtime = body->mtime;
- if ( body->valid & OBD_MD_FLCTIME )
- dst->i_ctime = body->ctime;
- if ( body->valid & OBD_MD_FLSIZE )
- dst->i_size = body->size;
- if ( body->valid & OBD_MD_FLMODE )
- dst->i_mode = body->mode;
- if ( body->valid & OBD_MD_FLUID )
- dst->i_uid = body->uid;
- if ( body->valid & OBD_MD_FLGID )
- dst->i_gid = body->gid;
- if ( body->valid & OBD_MD_FLFLAGS )
- dst->i_flags = body->flags;
- if ( body->valid & OBD_MD_FLNLINK )
- dst->i_nlink = body->nlink;
- if ( body->valid & OBD_MD_FLGENER )
- dst->i_generation = body->generation;
-
- /* this will become more elaborate for striping etc */
- if (body->valid & OBD_MD_FLOBJID)
- ii->lli_objid = body->objid;
-#if 0
-
- if (obdo_has_inline(oa)) {
- if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode) ||
- S_ISFIFO(inode->i_mode)) {
- obd_rdev rdev = *((obd_rdev *)oa->o_inline);
- CDEBUG(D_INODE,
- "copying device %x from obdo to inode\n", rdev);
- init_special_inode(inode, inode->i_mode, rdev);
- } else {
- CDEBUG(D_INFO, "copying inline from obdo to inode\n");
- memcpy(oinfo->lli_inline, oa->o_inline, OBD_INLINESZ);
+ ll_update_inode(inode, body);
+
+ //if (body->valid & OBD_MD_FLEASIZE)
+ if (lic && lic->lic_lmm) {
+ struct lov_mds_md *lmm = lic->lic_lmm;
+ int size;
+
+ /* XXX This should probably not be an error in the future,
+ * when we allow LOV OSTs to be added.
+ */
+ if (lmm->lmm_easize != ll_mds_easize(inode->i_sb)) {
+ CERROR("Striping metadata size error %ld\n",
+ inode->i_ino);
+ LBUG();
+ }
+ size = ll_ost_easize(inode->i_sb);
+ OBD_ALLOC(lli->lli_smd, size);
+ if (!lli->lli_smd) {
+ CERROR("No memory for %d\n", size);
+ LBUG();