diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 0ddca67344948ce6f27a5a86aec9e6ffc8973628..0bbd69ed99613d94ca8cd0164a05659b2858c363 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -2667,6 +2667,7 @@ int open_ctree(struct super_block *sb,
 	if (btrfs_check_super_csum(bh->b_data)) {
 		printk(KERN_ERR "BTRFS: superblock checksum mismatch\n");
 		err = -EINVAL;
+		brelse(bh);
 		goto fail_alloc;
 	}