btrfs delete ordered inode handling fix

Use btrfs_release_file instead of a put_inode call

Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
Mingming
2008-05-27 10:55:43 -04:00
committed by Chris Mason
parent da496f2acf
commit e1b81e6761
5 changed files with 23 additions and 32 deletions

View File

@@ -857,15 +857,11 @@ static int btrfs_unlink(struct inode *dir, struct dentry *dentry)
nr = trans->blocks_used;
if (inode->i_nlink == 0) {
int found;
/* if the inode isn't linked anywhere,
* we don't need to worry about
* data=ordered
*/
found = btrfs_del_ordered_inode(inode);
if (found == 1) {
atomic_dec(&inode->i_count);
}
btrfs_del_ordered_inode(inode);
}
btrfs_end_transaction(trans, root);
@@ -1271,24 +1267,6 @@ fail:
return err;
}
void btrfs_put_inode(struct inode *inode)
{
int ret;
if (!BTRFS_I(inode)->ordered_trans) {
return;
}
if (mapping_tagged(inode->i_mapping, PAGECACHE_TAG_DIRTY) ||
mapping_tagged(inode->i_mapping, PAGECACHE_TAG_WRITEBACK))
return;
ret = btrfs_del_ordered_inode(inode);
if (ret == 1) {
atomic_dec(&inode->i_count);
}
}
void btrfs_delete_inode(struct inode *inode)
{
struct btrfs_trans_handle *trans;