[Ocfs2-commits] mfasheh commits r1229 - trunk/src
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Thu Jul 1 20:20:56 CDT 2004
Author: mfasheh
Date: 2004-07-01 19:20:54 -0500 (Thu, 01 Jul 2004)
New Revision: 1229
Modified:
trunk/src/inode.c
Log:
* commit some iget cleanups from sonic.zhang at intel.com,
elton.yang at intel.com and michael.fu at intel.com
Modified: trunk/src/inode.c
===================================================================
--- trunk/src/inode.c 2004-07-02 00:04:26 UTC (rev 1228)
+++ trunk/src/inode.c 2004-07-02 00:20:54 UTC (rev 1229)
@@ -148,6 +148,14 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
inode = iget5_locked (sb, args.ino, ocfs_find_actor,
ocfs_init_locked_inode, &args);
+ /* 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) {
+ LOG_TRACE_STR("Inode was not in inode cache, reading it.");
+ ocfs_read_locked_inode(inode, &args);
+ unlock_new_inode(inode);
+ }
#else
inode = iget4 (sb, args.ino, ocfs_find_inode, &args);
#endif
@@ -164,26 +172,10 @@
}
bail:
- if (inode) {
+ if (inode)
LOG_TRACE_ARGS("returning inode with number %llu\n",
OCFS_I(inode)->ip_blkno);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
- /* 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->i_state & I_NEW) {
- LOG_TRACE_STR("Inode was not in inode cache, reading "
- "it.");
- if (ocfs_read_locked_inode(inode, &args) < 0) {
- LOG_ERROR_ARGS("bad inode: i_ino=%lu\n", inode->i_ino);
- make_bad_inode(inode);
- iput(inode);
- inode = NULL;
- } else
- unlock_new_inode(inode);
- }
-#endif
- }
+
LOG_EXIT_PTR(inode);
return(inode);
@@ -494,6 +486,11 @@
}
fe = (ocfs2_dinode *) bh->b_data;
+ if(!IS_VALID_FILE_ENTRY(fe)) {
+ make_bad_inode (inode);
+ goto bail;
+ }
+
sysfile = le32_to_cpu(fe->i_flags) & OCFS2_SYSTEM_FL;
if (S_ISCHR(fe->i_mode) || S_ISBLK(fe->i_mode))
inode->i_rdev = huge_decode_dev(le64_to_cpu(fe->id1.dev1.i_rdev));
More information about the Ocfs2-commits
mailing list