diff options
Diffstat (limited to 'fs/jfs/inode.c')
| -rw-r--r-- | fs/jfs/inode.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c index 767c7ecb429e..0ec62d5310db 100644 --- a/fs/jfs/inode.c +++ b/fs/jfs/inode.c | |||
| @@ -128,21 +128,23 @@ void jfs_delete_inode(struct inode *inode) | |||
| 128 | { | 128 | { |
| 129 | jfs_info("In jfs_delete_inode, inode = 0x%p", inode); | 129 | jfs_info("In jfs_delete_inode, inode = 0x%p", inode); |
| 130 | 130 | ||
| 131 | if (is_bad_inode(inode) || | 131 | if (!is_bad_inode(inode) && |
| 132 | (JFS_IP(inode)->fileset != cpu_to_le32(FILESYSTEM_I))) | 132 | (JFS_IP(inode)->fileset == cpu_to_le32(FILESYSTEM_I))) { |
| 133 | return; | ||
| 134 | 133 | ||
| 135 | if (test_cflag(COMMIT_Freewmap, inode)) | 134 | truncate_inode_pages(&inode->i_data, 0); |
| 136 | jfs_free_zero_link(inode); | ||
| 137 | 135 | ||
| 138 | diFree(inode); | 136 | if (test_cflag(COMMIT_Freewmap, inode)) |
| 137 | jfs_free_zero_link(inode); | ||
| 139 | 138 | ||
| 140 | /* | 139 | diFree(inode); |
| 141 | * Free the inode from the quota allocation. | 140 | |
| 142 | */ | 141 | /* |
| 143 | DQUOT_INIT(inode); | 142 | * Free the inode from the quota allocation. |
| 144 | DQUOT_FREE_INODE(inode); | 143 | */ |
| 145 | DQUOT_DROP(inode); | 144 | DQUOT_INIT(inode); |
| 145 | DQUOT_FREE_INODE(inode); | ||
| 146 | DQUOT_DROP(inode); | ||
| 147 | } | ||
| 146 | 148 | ||
| 147 | clear_inode(inode); | 149 | clear_inode(inode); |
| 148 | } | 150 | } |
