GOTO(out, rc);
}
+ /* The EA inode should NOT be in OI, old OI scrub may added
+ * such OI mapping by wrong, replace it. */
+ if (unlikely(osd_is_ea_inode(inode))) {
+ iput(inode);
+ goto update;
+ }
+
rc = osd_get_lma(info, inode, dentry, lma);
if (rc == -ENODATA) {
rc = osd_get_idif(info, inode, dentry, oi_fid);
inode = info->oti_inode;
if (unlikely(inode == NULL)) {
- OBD_ALLOC_PTR(inode);
- if (inode == NULL)
+ struct ldiskfs_inode_info *lii;
+ OBD_ALLOC_PTR(lii);
+ if (lii == NULL)
RETURN(-ENOMEM);
- info->oti_inode = inode;
+ inode = info->oti_inode = &lii->vfs_inode;
}
inode->i_sb = osd_sb(osd);