diff options
author | Christoph Hellwig <hch@sgi.com> | 2005-09-04 18:28:02 -0400 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2005-09-04 18:28:02 -0400 |
commit | 02ba71de98d5eee63e82cc2d88f9ea8430810a9a (patch) | |
tree | b85447888ac27b35136d92f4dc25cc55de3b1b97 /fs | |
parent | 53937c52c3f1dff6100174f50a85c068f16713ae (diff) |
[XFS] allow a null behaviour pointer in linvfs_clear_inode
SGI-PV: 940531
SGI-Modid: xfs-linux:xfs-kern:197782a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index cd3f8b3270ac..910e43bfc95b 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -387,14 +387,17 @@ linvfs_clear_inode( | |||
387 | 387 | ||
388 | vn_trace_entry(vp, "clear_inode", (inst_t *)__return_address); | 388 | vn_trace_entry(vp, "clear_inode", (inst_t *)__return_address); |
389 | 389 | ||
390 | ASSERT(vp->v_fbhv != NULL); | ||
391 | |||
392 | XFS_STATS_INC(vn_rele); | 390 | XFS_STATS_INC(vn_rele); |
393 | XFS_STATS_INC(vn_remove); | 391 | XFS_STATS_INC(vn_remove); |
394 | XFS_STATS_INC(vn_reclaim); | 392 | XFS_STATS_INC(vn_reclaim); |
395 | XFS_STATS_DEC(vn_active); | 393 | XFS_STATS_DEC(vn_active); |
396 | 394 | ||
397 | VOP_INACTIVE(vp, NULL, cache); | 395 | /* |
396 | * This can happen because xfs_iget_core calls xfs_idestroy if we | ||
397 | * find an inode with di_mode == 0 but without IGET_CREATE set. | ||
398 | */ | ||
399 | if (vp->v_fbhv) | ||
400 | VOP_INACTIVE(vp, NULL, cache); | ||
398 | 401 | ||
399 | VN_LOCK(vp); | 402 | VN_LOCK(vp); |
400 | vp->v_flag &= ~VMODIFIED; | 403 | vp->v_flag &= ~VMODIFIED; |