From 7baec3d434ce340cade1397d5aa1bc6685327034 Mon Sep 17 00:00:00 2001 From: wangdi Date: Wed, 1 Sep 2004 16:00:04 +0000 Subject: [PATCH] b4445: clear smfs_info in smfs_delete_inode --- lustre/smfs/inode.c | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/lustre/smfs/inode.c b/lustre/smfs/inode.c index 5603b61..a666f31 100644 --- a/lustre/smfs/inode.c +++ b/lustre/smfs/inode.c @@ -42,10 +42,12 @@ static void smfs_init_inode_info (struct inode *inode, void *opaque) struct smfs_iget_args *sargs = (struct smfs_iget_args*)opaque; struct inode *cache_inode = NULL; +#if 0 if (sargs) cache_inode = iget(S2CSB(inode->i_sb), sargs->s_ino); else - cache_inode = iget(S2CSB(inode->i_sb), inode->i_ino); +#endif + cache_inode = iget(S2CSB(inode->i_sb), inode->i_ino); OBD_ALLOC(I2SMI(inode), sizeof(struct smfs_inode_info)); LASSERT(I2SMI(inode)); @@ -180,25 +182,6 @@ static void smfs_delete_inode(struct inode *inode) if (!cache_inode || !S2CSB(inode->i_sb)) return; - /* FIXME-WANGDI: because i_count of cache_inode may not be 0 or 1 in - * before smfs_delete inode, So we need to dec it to 1 before we call - * delete_inode of the bellow cache filesystem Check again latter. */ - - if (atomic_read(&cache_inode->i_count) < 1) - BUG(); - - while (atomic_read(&cache_inode->i_count) != 1) - atomic_dec(&cache_inode->i_count); - - pre_smfs_inode(inode, cache_inode); - - if (atomic_read(&cache_inode->i_count) < 1) - LBUG(); - - while (atomic_read(&cache_inode->i_count) != 1) { - atomic_dec(&cache_inode->i_count); - } - pre_smfs_inode(inode, cache_inode); #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) @@ -217,8 +200,8 @@ static void smfs_delete_inode(struct inode *inode) S2CSB(inode->i_sb)->s_op->delete_inode(cache_inode); post_smfs_inode(inode, cache_inode); - - I2CI(inode) = NULL; + smfs_clear_inode_info(inode); + return; } -- 1.8.3.1