forked from luck/tmp_suning_uos_patched
ocfs2: Little refactoring against ocfs2_iget.
ocfs2_iget is used to get/create inode. Only iget5_locked will give us an inode = NULL. So move this check ahead of ocfs2_read_locked_inode so that we don't need to check inode before we read and unlock inode. This is also helpful for trace event(see the next patch). Signed-off-by: Tao Ma <boyu.mt@taobao.com>
This commit is contained in:
parent
468eedde23
commit
6218b90e76
|
@ -152,16 +152,16 @@ struct inode *ocfs2_iget(struct ocfs2_super *osb, u64 blkno, unsigned flags,
|
|||
/* inode was *not* in the inode cache. 2.6.x requires
|
||||
* us to do our own read_inode call and unlock it
|
||||
* afterwards. */
|
||||
if (inode && inode->i_state & I_NEW) {
|
||||
mlog(0, "Inode was not in inode cache, reading it.\n");
|
||||
ocfs2_read_locked_inode(inode, &args);
|
||||
unlock_new_inode(inode);
|
||||
}
|
||||
if (inode == NULL) {
|
||||
inode = ERR_PTR(-ENOMEM);
|
||||
mlog_errno(PTR_ERR(inode));
|
||||
goto bail;
|
||||
}
|
||||
if (inode->i_state & I_NEW) {
|
||||
mlog(0, "Inode was not in inode cache, reading it.\n");
|
||||
ocfs2_read_locked_inode(inode, &args);
|
||||
unlock_new_inode(inode);
|
||||
}
|
||||
if (is_bad_inode(inode)) {
|
||||
iput(inode);
|
||||
inode = ERR_PTR(-ESTALE);
|
||||
|
|
Loading…
Reference in New Issue
Block a user