We should alloc ldiskfs_inode_info instead alloc inode
directly. Else will overflow in follow ldiskfs_add_entry.
Signed-off-by: Yang Sheng <yang.sheng@intel.com>
Change-Id: Ib88f847ea8f160f6f0d0c7e7e680247d7ec96fb6
Reviewed-on: http://review.whamcloud.com/16804
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Jenkins
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Frank Zago <fzago@cray.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
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);
struct lu_context_key *key, void* data)
{
struct osd_thread_info *info = data;
+ struct ldiskfs_inode_info *lli = LDISKFS_I(info->oti_inode);
if (info->oti_inode != NULL)
- OBD_FREE_PTR(info->oti_inode);
+ OBD_FREE_PTR(lli);
if (info->oti_hlock != NULL)
ldiskfs_htree_lock_free(info->oti_hlock);
OBD_FREE(info->oti_it_ea_buf, OSD_IT_EA_BUFSIZE);