diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index c718d274a352d573b0940ba606d6003c9151e7cb..ad6b515173accc505f5c2106eb1cd56979314ca1 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -6041,7 +6041,7 @@ static int btrfs_submit_direct_hook(int rw, struct btrfs_dio_private *dip,
 	ret = btrfs_map_block(map_tree, READ, start_sector << 9,
 			      &map_length, NULL, 0);
 	if (ret) {
-		bio_put(bio);
+		bio_put(orig_bio);
 		return -EIO;
 	}