diff options
Diffstat (limited to 'fs/inode.c')
-rw-r--r-- | fs/inode.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/fs/inode.c b/fs/inode.c index 32b7c3375021..3a2446a27d2c 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -172,8 +172,7 @@ static struct inode *alloc_inode(struct super_block *sb) | |||
172 | 172 | ||
173 | void destroy_inode(struct inode *inode) | 173 | void destroy_inode(struct inode *inode) |
174 | { | 174 | { |
175 | if (inode_has_buffers(inode)) | 175 | BUG_ON(inode_has_buffers(inode)); |
176 | BUG(); | ||
177 | security_inode_free(inode); | 176 | security_inode_free(inode); |
178 | if (inode->i_sb->s_op->destroy_inode) | 177 | if (inode->i_sb->s_op->destroy_inode) |
179 | inode->i_sb->s_op->destroy_inode(inode); | 178 | inode->i_sb->s_op->destroy_inode(inode); |
@@ -249,12 +248,9 @@ void clear_inode(struct inode *inode) | |||
249 | might_sleep(); | 248 | might_sleep(); |
250 | invalidate_inode_buffers(inode); | 249 | invalidate_inode_buffers(inode); |
251 | 250 | ||
252 | if (inode->i_data.nrpages) | 251 | BUG_ON(inode->i_data.nrpages); |
253 | BUG(); | 252 | BUG_ON(!(inode->i_state & I_FREEING)); |
254 | if (!(inode->i_state & I_FREEING)) | 253 | BUG_ON(inode->i_state & I_CLEAR); |
255 | BUG(); | ||
256 | if (inode->i_state & I_CLEAR) | ||
257 | BUG(); | ||
258 | wait_on_inode(inode); | 254 | wait_on_inode(inode); |
259 | DQUOT_DROP(inode); | 255 | DQUOT_DROP(inode); |
260 | if (inode->i_sb && inode->i_sb->s_op->clear_inode) | 256 | if (inode->i_sb && inode->i_sb->s_op->clear_inode) |
@@ -1054,8 +1050,7 @@ void generic_delete_inode(struct inode *inode) | |||
1054 | hlist_del_init(&inode->i_hash); | 1050 | hlist_del_init(&inode->i_hash); |
1055 | spin_unlock(&inode_lock); | 1051 | spin_unlock(&inode_lock); |
1056 | wake_up_inode(inode); | 1052 | wake_up_inode(inode); |
1057 | if (inode->i_state != I_CLEAR) | 1053 | BUG_ON(inode->i_state != I_CLEAR); |
1058 | BUG(); | ||
1059 | destroy_inode(inode); | 1054 | destroy_inode(inode); |
1060 | } | 1055 | } |
1061 | 1056 | ||