aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_iget.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_iget.c')
-rw-r--r--fs/xfs/xfs_iget.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c
index f77bda1473b7..15dba2ef847f 100644
--- a/fs/xfs/xfs_iget.c
+++ b/fs/xfs/xfs_iget.c
@@ -199,12 +199,9 @@ again:
199 XFS_STATS_INC(xs_ig_found); 199 XFS_STATS_INC(xs_ig_found);
200 200
201finish_inode: 201finish_inode:
202 if (ip->i_d.di_mode == 0) { 202 if (ip->i_d.di_mode == 0 && !(flags & XFS_IGET_CREATE)) {
203 if (!(flags & XFS_IGET_CREATE)) { 203 xfs_put_perag(mp, pag);
204 xfs_put_perag(mp, pag); 204 return ENOENT;
205 return ENOENT;
206 }
207 xfs_iocore_inode_reinit(ip);
208 } 205 }
209 206
210 if (lock_flags != 0) 207 if (lock_flags != 0)
@@ -235,7 +232,6 @@ finish_inode:
235 xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); 232 xfs_itrace_exit_tag(ip, "xfs_iget.alloc");
236 233
237 xfs_inode_lock_init(ip, vp); 234 xfs_inode_lock_init(ip, vp);
238 xfs_iocore_inode_init(ip);
239 if (lock_flags) 235 if (lock_flags)
240 xfs_ilock(ip, lock_flags); 236 xfs_ilock(ip, lock_flags);
241 237
@@ -331,9 +327,6 @@ finish_inode:
331 ASSERT(ip->i_df.if_ext_max == 327 ASSERT(ip->i_df.if_ext_max ==
332 XFS_IFORK_DSIZE(ip) / sizeof(xfs_bmbt_rec_t)); 328 XFS_IFORK_DSIZE(ip) / sizeof(xfs_bmbt_rec_t));
333 329
334 ASSERT(((ip->i_d.di_flags & XFS_DIFLAG_REALTIME) != 0) ==
335 ((ip->i_iocore.io_flags & XFS_IOCORE_RT) != 0));
336
337 xfs_iflags_set(ip, XFS_IMODIFIED); 330 xfs_iflags_set(ip, XFS_IMODIFIED);
338 *ipp = ip; 331 *ipp = ip;
339 332