diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c
index cba2b62..3ee51e1 100644
--- a/fs/btrfs/ordered-data.c
+++ b/fs/btrfs/ordered-data.c
@@ -25,6 +25,7 @@
 struct tree_entry {
 	u64 root_objectid;
 	u64 objectid;
+	struct inode *inode;
 	struct rb_node rb_node;
 };
 
@@ -144,6 +145,7 @@
 	write_lock(&tree->lock);
 	entry->objectid = inode->i_ino;
 	entry->root_objectid = root_objectid;
+	entry->inode = inode;
 
 	node = tree_insert(&tree->tree, root_objectid,
 			   inode->i_ino, &entry->rb_node);
@@ -159,7 +161,8 @@
 }
 
 int btrfs_find_first_ordered_inode(struct btrfs_ordered_inode_tree *tree,
-				       u64 *root_objectid, u64 *objectid)
+				   u64 *root_objectid, u64 *objectid,
+				   struct inode **inode)
 {
 	struct tree_entry *entry;
 	struct rb_node *node;
@@ -184,13 +187,16 @@
 	}
 
 	*root_objectid = entry->root_objectid;
+	*inode = entry->inode;
+	atomic_inc(&entry->inode->i_count);
 	*objectid = entry->objectid;
 	write_unlock(&tree->lock);
 	return 1;
 }
 
 int btrfs_find_del_first_ordered_inode(struct btrfs_ordered_inode_tree *tree,
-				       u64 *root_objectid, u64 *objectid)
+				       u64 *root_objectid, u64 *objectid,
+				       struct inode **inode)
 {
 	struct tree_entry *entry;
 	struct rb_node *node;
@@ -216,6 +222,8 @@
 
 	*root_objectid = entry->root_objectid;
 	*objectid = entry->objectid;
+	*inode = entry->inode;
+	atomic_inc(&entry->inode->i_count);
 	rb_erase(node, &tree->tree);
 	write_unlock(&tree->lock);
 	kfree(entry);
diff --git a/fs/btrfs/ordered-data.h b/fs/btrfs/ordered-data.h
index 26b2621..f25c677 100644
--- a/fs/btrfs/ordered-data.h
+++ b/fs/btrfs/ordered-data.h
@@ -33,8 +33,10 @@
 
 int btrfs_add_ordered_inode(struct inode *inode);
 int btrfs_find_del_first_ordered_inode(struct btrfs_ordered_inode_tree *tree,
-				       u64 *root_objectid, u64 *objectid);
+				       u64 *root_objectid, u64 *objectid,
+				       struct inode **inode);
 int btrfs_find_first_ordered_inode(struct btrfs_ordered_inode_tree *tree,
-				       u64 *root_objectid, u64 *objectid);
+				       u64 *root_objectid, u64 *objectid,
+				       struct inode **inode);
 int btrfs_del_ordered_inode(struct inode *inode);
 #endif
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index 08f7a18..b6bbfc1 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -490,19 +490,17 @@
 	while(1) {
 		ret = btrfs_find_first_ordered_inode(
 				&cur_trans->ordered_inode_tree,
-				&root_objectid, &objectid);
+				&root_objectid, &objectid, &inode);
 		if (!ret)
 			break;
 
 		mutex_unlock(&root->fs_info->trans_mutex);
 		mutex_unlock(&root->fs_info->fs_mutex);
-		inode = btrfs_ilookup(root->fs_info->sb, objectid,
-				      root_objectid);
-		if (inode) {
-			if (S_ISREG(inode->i_mode))
-				filemap_fdatawrite(inode->i_mapping);
-			iput(inode);
-		}
+
+		if (S_ISREG(inode->i_mode))
+			filemap_fdatawrite(inode->i_mapping);
+		iput(inode);
+
 		mutex_lock(&root->fs_info->fs_mutex);
 		mutex_lock(&root->fs_info->trans_mutex);
 	}
@@ -511,19 +509,17 @@
 		objectid = 0;
 		ret = btrfs_find_del_first_ordered_inode(
 				&cur_trans->ordered_inode_tree,
-				&root_objectid, &objectid);
+				&root_objectid, &objectid, &inode);
 		if (!ret)
 			break;
 		mutex_unlock(&root->fs_info->trans_mutex);
 		mutex_unlock(&root->fs_info->fs_mutex);
-		inode = btrfs_ilookup(root->fs_info->sb, objectid,
-				      root_objectid);
-		if (inode) {
-			if (S_ISREG(inode->i_mode))
-				filemap_write_and_wait(inode->i_mapping);
-			atomic_dec(&inode->i_count);
-			iput(inode);
-		}
+
+		if (S_ISREG(inode->i_mode))
+			filemap_write_and_wait(inode->i_mapping);
+		atomic_dec(&inode->i_count);
+		iput(inode);
+
 		mutex_lock(&root->fs_info->fs_mutex);
 		mutex_lock(&root->fs_info->trans_mutex);
 	}
