diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index cc04dc1445d64da8694401c2cbc2fde27105b8f9..d39596224d2104ae33a05819d3b56608be1a8f48 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -638,7 +638,7 @@ static int __btrfs_open_devices(struct btrfs_fs_devices *fs_devices,
 error_brelse:
 		brelse(bh);
 error_close:
-		close_bdev_exclusive(bdev, FMODE_READ);
+		close_bdev_exclusive(bdev, flags);
 error:
 		continue;
 	}