If this doesn’t mount your volume, pray to justice you have a backup.
(Wait you don’t have a backup of all your precious data? Terrible mistake… Make one now)
mount /dev/sda1 /data -t btrfs -o nospace_cache,clear_cache,enospc_debug,nodatacow
NOTE: of course the options can come before the type (and the type doesnt even need to be there as linux can figure it out)
NOTE: if the above mount command doesnt work, check out my other articles (maybe you have some juicy details in your journalctl/syslog/dmesg). Check with the btrfs devs on the forums. Dont forget about the “btrfs restore” command which can be a helpful data squeeze in a tight situation.
UPDATE 2015-12-03: BTRFS now runs alot better so running a simple mount /dev/sda1 /data -t btrfs -o ro should be enough, followed by mount /dev/sda1 /data -t btrfs. If you dont see any issues with read only, then run without readonly (ro). Also nospace_cache is part of the defaults. Also -t btrfs is optional, btrfs is smart enough to know where it is (although running btrfs device scan can be useful if your getting errors mounting a well known multi-device btrfs volume – it doesnt hurt to run)