|
@@ -707,6 +707,7 @@ void nilfs_evict_inode(struct inode *inode)
|
|
|
struct nilfs_transaction_info ti;
|
|
|
struct super_block *sb = inode->i_sb;
|
|
|
struct nilfs_inode_info *ii = NILFS_I(inode);
|
|
|
+ int ret;
|
|
|
|
|
|
if (inode->i_nlink || !ii->i_root || unlikely(is_bad_inode(inode))) {
|
|
|
if (inode->i_data.nrpages)
|
|
@@ -725,8 +726,9 @@ void nilfs_evict_inode(struct inode *inode)
|
|
|
nilfs_mark_inode_dirty(inode);
|
|
|
end_writeback(inode);
|
|
|
|
|
|
- nilfs_ifile_delete_inode(ii->i_root->ifile, inode->i_ino);
|
|
|
- atomic_dec(&ii->i_root->inodes_count);
|
|
|
+ ret = nilfs_ifile_delete_inode(ii->i_root->ifile, inode->i_ino);
|
|
|
+ if (!ret)
|
|
|
+ atomic_dec(&ii->i_root->inodes_count);
|
|
|
|
|
|
nilfs_clear_inode(inode);
|
|
|
|